Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 百分比符号之间大写和下划线的正则表达式_Python_Regex - Fatal编程技术网

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

Python 百分比符号之间大写和下划线的正则表达式,python,regex,Python,Regex,Regex从来都不是我的强项。在python中,我试图构建一个与子字符串匹配的表达式,例如: %匹配% %匹配1% $这是一场比赛% 它将由%MATCH%或%like\u this%提取 我最终得出了这个结论(逻辑上,但似乎不起作用):%[A-Z0-9.]*$% 那么我在这方面哪里出了问题呢?您可以使用这样一个简单的正则表达式: [%$]\w+[%$] <-- Notice I put $ because of your sample 如果您只希望匹配%以内的内容,还可以使用: %.

Regex从来都不是我的强项。在python中,我试图构建一个与子字符串匹配的表达式,例如:

%匹配%

%匹配1%

$这是一场比赛%

它将由%MATCH%或%like\u this%提取

我最终得出了这个结论(逻辑上,但似乎不起作用):
%[A-Z0-9.]*$%


那么我在这方面哪里出了问题呢?

您可以使用这样一个简单的正则表达式:

[%$]\w+[%$]   <-- Notice I put $ because of your sample
如果您只希望匹配%以内的内容,还可以使用:

%.+?%
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
%[A-Z0-9_]*$%
           ^--- Remove this dolar sign