Python正则表达式(或表达式)

2024-04-18 18:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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

这个正则表达式能以更有效的方式完成吗? 先谢谢你。你知道吗


Tags: ofinfortask状态关键字listregex
1条回答
网友
1楼 · 发布于 2024-04-18 18:45:49

您还可以交替执行任务,这样您的最终正则表达式看起来就像

(task1|task2|task3).*(success|inactive|failed)

因此,您有一个regex,您可以通过m.group(1)获得任务名称,通过m.group(2)获得状态,但更重要的是,如果您的文件实际上只是一堆形式的行

TASK STATUS

使用regex是完全多余的,您可以简单地拆分白色字符上的字符串并检索任务和状态。正则表达式只有在看起来

so I did research on TASK statistics 123 $ time 30s process& STATUS leads to a conclusion that blah

相关问题 更多 >