我有以下代码:
testREString = '(hello | goodbye) \s darkness \s my \s old \s friend'
testString = 'sound of silence: goodbye darkness my old friend'
exp = re.compile(testREString, re.VERBOSE)
print(exp.findall(testString))
它返回:['goodbye']
,我期望它返回完整的句子 - 事实上,使用它选择的exp.search(testString)
正确说出句子的其余部分。那么为什么没有显示完整的匹配项呢?
感谢您的宝贵时间。
最佳答案
正则表达式中的
(...)
定义捕获组。
re.findall
如果您的表达式定义了任何捕获组,则返回捕获组的内容。
您可以将其设置为非捕获组(?:hello|goodbye)
以避免这种情况。请参阅What is a non-capturing group?
关于python 正则表达式 : re. findall() 的行为不按预期进行交替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45241171/