[英]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.