Skip to main content
 首页 » 编程设计

python之大写正则表达式和百分号之间的下划线

2024年08月25日28xiaohuochai

正则表达式从来都不是我的强项。在 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