正则表达式从来都不是我的强项。在 python 中,我试图构建一个匹配子字符串的表达式,如下所示:
%匹配%
%MATCH_1%
$THIS_IS_A_MATCH%
它将被像这样的 %MATCH% 或 %LIKE_THIS% 提取
我最终得到了这个(从逻辑上讲,但似乎不起作用):%[A-Z0-9_]*$%
那么我哪里出错了?
请您参考如下方法:
您可以像这样使用一个简单的正则表达式:
[%$]\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
