在文件中搜索包含特定单词/字符串组合的每个行列表

问题描述 投票:0回答:1

我正在尝试从文件的每一行中搜索特定的单词,如果发现这些单词有作用。

例如,我有一个文件包含名称列表

pSet02Hw codeid xxxxx
Set01Mt codeid xxxxx
Set02Mt codeid xxxxx
pSet03Hw codeid xxxxx
pSet07Hw codeid xxxxx
pset01hw codeid xxxxx
set03mt codeid xxxxx

我读取了文件中的每一行。从文件中,我想搜索设置并比执行process1的行高的行,如果该行设置并比执行process2的行高,则行。除非我仅搜索set,否则下面的代码无法正常工作,但这可能导致执行错误的过程。

if 'sethw' in linelist[0]:
    execute process1
elif 'setmt' in linelist[0]:
    execute process2
else:
    print("No process executed")
    break

我尝试过'set'和'hw'的组合,以及'set'和'mt'的组合,但无法正常工作。

[请提供建议并告诉我正确的做法。谢谢大家。

python if-statement search
1个回答
0
投票

通过在此上使用RegEx,您会过得很好。下面的示例代码:

import re

pattern1 = re.compile(r'^pset\d{2}hw', re.IGNORECASE)
pattern2 = re.compile(r'^set\d{2}mt', re.IGNORECASE)

# Assuming your linelist is already subdivided into list of lists:
for line in linelist:
    if re.search(pattern1, line[0]):
        # execute process 1
    elif re.search(pattern2, line[0]):
        # execute process 2

上面的正则表达式模式更多是一个指南,但您可以根据自己的喜好对其进行调整。

© www.soinside.com 2019 - 2024. All rights reserved.