我是Python的初学者,所以我对代码优化有疑问。我希望你能给我一些建议。 我正在解决下一个任务: 一行中有一个关键字的文本及其状态可能不同,例如:
... task1 .... success....
... task1 .... failed...
... task1 .... inactive...
我必须跟踪这个状态使用关键字(我们也有不同的任务)。你知道吗
我的代码:
list_of_tasks = ['task1','task2','task3']
list_of_states = ['success','inactive','failed']
for task in list_of_tasks:
regex='|'.join(('.*'+task+'.*'+state+'.*') for state in list_of_states)
pattern = re.compile (regex)
for line in text:
m = re.match(pattern,str(line))
if m:
#operational logic
这个正则表达式能以更有效的方式完成吗? 先谢谢你。你知道吗
您还可以交替执行任务,这样您的最终正则表达式看起来就像
因此,您有一个regex,您可以通过
m.group(1)
获得任务名称,通过m.group(2)
获得状态,但更重要的是,如果您的文件实际上只是一堆形式的行使用regex是完全多余的,您可以简单地拆分白色字符上的字符串并检索任务和状态。正则表达式只有在看起来
相关问题 更多 >
编程相关推荐