gpt4 book ai didi

python - python中具有多个匹配项和否定条件的多行正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:01 25 4
gpt4 key购买 nike

我正在读取一个文本文件并试图捕获每个不同标记的参数之一,该标记尚未被注释掉。

更具体地说,我有以下输入...

maybe there is some text \THISTAG[arg1=1,argtwo]{WANT0}
% \THISTAG[arg1=1,argtwo]{NOTWANT}
% blah blah \THISTAG[arg1=1,argtwo]{NOTWANT}
\THISTAG[arg1=1,argtwo]{WANT1}\THISTAG[arg1=1,argtwo]{WANT2}\\stuff
\sometag{stuff I don't want}[{\THISTAG[arg1=1,argtwo]{WANT3}}]{more stuff I don't want}
\THISTAG[arg1=1,argtwo]{OBV_WANT}

我想要以下输出

WANT0
WANT1
WANT2
WANT3
OBV_WANT

到目前为止,我有以下代码,它没有完成我想要的

with open(target, "r") as ins:
f = re.findall(r'^(?:[^%])?\\THISTAG\[.+\]{(.+?)}(?:{.+})?', ins.read(),re.MULTILINE)

最佳答案

您可以逐行执行正则表达式,过滤掉以 % 开头的正则表达式:

import re

res = []
with open('test.txt') as f:
res = sum([re.findall('\\THISTAG\[.*?\]{(.*?)}', line)
for line in f if not line.startswith('%')
], [])

print res # ['WANT0', 'WANT1', 'WANT2', 'WANT3', 'OBV_WANT']

关于python - python中具有多个匹配项和否定条件的多行正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com