正则表达从未成为我的强项。在python中,我试图构建一个匹配子串的表达式,如:
%MATCH%
%MATCH_1%
$ THIS_IS_A_MATCH%
它将由%MATCH%这样提取或%LIKE_THIS%
我最终得到了这个(逻辑上,但似乎不起作用):%[A-Z0-9_]*$%
那我在哪里错了?
答案 0 :(得分:3)
您可以使用这样的简单正则表达式:
[%$]\w+[%$] <-- Notice I put $ because of your sample
另一方面,如果你只想要大写,你可以使用:
[%$][A-Z_\d]+[%$]
如果您只想匹配%内的内容,您还可以使用:
%.+?%
Python代码
import re
p = re.compile(ur'[%$]\w+[%$]')
test_str = u"%MATCH%\n\n%MATCH_1%\n\n$THIS_IS_A_MATCH%"
re.findall(p, test_str)
顺便说一句,你的正则表达式的问题如下:
%[A-Z0-9_]*$%
^--- Remove this dolar sign