我尝试在以下代码中匹配超过2次出现的haha
。但是()
似乎是在分组。为什么不起作用?
>>> pattern="this is a joke hahahahahaaa. I cannot stop laughing hahahaaa"
>>> print(re.findall("(ha){2,}",pattern))
['ha', 'ha']
我希望结果如下:
['hahahaha', 'hahaha']
我该如何解决?
答案 0 :(得分:4)
import re
s = '"this is a joke hahahahahaaa. I cannot stop laughing hahahaaa"'
result = re.findall(r'(?:ha){2,}', s)
print(result)
输出:
['hahahahaha', 'hahaha']
(?:ha){2,}
- 将序列ha
(包含在组(..)
中)与{2,}
完全匹配2次或多次,但将其视为非捕获组
(?:...)
- 匹配但未捕获所有内容