Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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_Python 2.7 - Fatal编程技术网

Python正则表达式不匹配,但在正则表达式测试仪上工作

Python正则表达式不匹配,但在正则表达式测试仪上工作,python,regex,python-2.7,Python,Regex,Python 2.7,这只是打印出[''] 正则表达式在在线正则表达式测试器上正常工作。为什么不匹配?您可以使用非捕获组(即(?:\s*[\w/\\-]),(?:…)不构成捕获组,re.findall返回整个匹配,而不是捕获的组值): 见 另外,请注意,/符号不必在Python正则表达式模式中转义 另一点是,有一个PyPi正则表达式模块,这就是为什么我建议使用import re,而不是将它隐藏为正则表达式,,如果我将我的正则表达式\w[\w\/\-]*(\s*[\w\/\-])*放在它上面,效果会很好,并与HELLO

这只是打印出
['']

正则表达式在在线正则表达式测试器上正常工作。为什么不匹配?

您可以使用非捕获组(即
(?:\s*[\w/\\-])
(?:…)
不构成捕获组,
re.findall
返回整个匹配,而不是捕获的组值):

另外,请注意,
/
符号不必在Python正则表达式模式中转义


另一点是,有一个PyPi正则表达式模块,这就是为什么我建议使用
import re
,而不是将它隐藏为
正则表达式
,,如果我将我的正则表达式\w[\w\/\-]*(\s*[\w\/\-])*放在它上面,效果会很好,并与HELLO-WORLD匹配。请尝试
\w[\w/\-*(?:\s*[\w/\-])*
。请看@alexis:我建议的模式没有前瞻性,请看答案。这很完美。谢谢。说明:如果
re.findall
包含捕获组,则只返回组捕获的内容;不是全部匹配。是的,以下是相关链接:
import re as regex
pattern = regex.compile(r'\w[\w\/\\-]*(\s*[\w\/\\-])*')
print pattern.findall("HELLO-WORLD")
import re
pattern = re.compile(r'\w[\w/\\-]*(?:\s*[\w/\\-])*')
print(pattern.findall("HELLO-WORLD"))