繁体   English   中英

如何从长字符串中提取以序列开头并以空格结尾的字符串

[英]how to extract string starting with a sequence and ending with a space from a long string

我有一个字符串如下:

ERROR2208 ERROR2209 ERROR2210 occurred upon initialization

我需要从该字符串中获取所有错误标记作为列表。 在 python 中执行此操作的最佳方法是什么?

您可以使用.split()获取单词列表,然后使用filter().startswith()仅提取以"ERROR"开头的单词:

data = "ERROR2208 ERROR2209 ERROR2210 occurred upon initialization"

tokens = data.split(" ")
error_tokens = list(filter(lambda x: x.startswith("ERROR"), tokens))
print(error_tokens)

如果单词不一定由空格分隔,则可以使用正则表达式(搜索"ERROR" ,后跟一系列数字,后跟非字母数字字符):

import re

data = "ERROR2208:ERROR2209,ERROR2210 occurred upon initialization"

pattern = re.compile(r'(ERROR\d+)[^A-Za-z0-9]')
error_tokens = re.findall(pattern, data)

print(error_tokens)

将字符串拆分为空格,然后找到以 Error 开头的单词:

my_string = "ERROR2208 ERROR2209 ERROR2210 occurred upon initialization"

def get_error(msg):
    for word in msg.split():
        if word.startswith("ERROR"):
            yield word

print(list(get_error(my_string)))

使用正则表达式。

import re

error_msg = "ERROR2208 ERROR2209 ERROR2210 occurred upon initialization"

errors_list = re.findall(r"ERROR\d+", error_msg)
print(errors_list)

如果你只想要错误号,那么

errors_list = re.findall(r"ERROR(\d+)", error_msg)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM