我有这个正则表达式模式,当我在 vim 中使用时效果很好:
s/\.[A-Za-z0-9_]*\(IPROC\|IFIX\|IPTAT\)[A-Za-z_]*\([0-9][0-9]*\)[^0-9]*.*([A-Za-z0-9_]*\(IPROC\|IFIX\|IPTAT\)[A-Za-z_]*\([0-9][0-9]*\)[^0-9]*.*)/\3_\4
我正在寻找类似的东西.jalsdkjflkajsdf_lajsdlfIFIX_100(IFIX_asdf_200)
它将返回:(IFIX_200
最后一部分)。我还可以将其设置为返回缓冲区 1 和 2,以便获取IFIX_100
(第一部分)。
如何在 python 中使用这个 reg 表达式来返回预期的内容。我已经尝试了 re.findall 和 re.search 中的每一个,但没有运气。
patternI1 = 's/\.[A-Za-z0-9_]*\(IPROC|IFIX|IPTAT\)[A-Za-z_]*\([0-9][0-9]*\)[^0-9]*.*([A-Za-z0-9_]*\(IPROC|IFIX|IPTAT\)[A-Za-z_]*\([0-9][0-9]*\)[^0-9]*.*)/\3_\4'
with open(filename) as input_file:
for num, line in enumerate(input_file, 1):
if re.search(patternI1, line):
x = re.findall(patternI1, line)
print x