正则表达式{}无法正常工作

时间:2018-01-21 20:45:18

标签: python regex python-3.x

我尝试在以下代码中匹配超过2次出现的haha。但是()似乎是在分组。为什么不起作用?

>>> pattern="this is a joke hahahahahaaa. I cannot stop laughing hahahaaa"
>>> print(re.findall("(ha){2,}",pattern))
['ha', 'ha']

我希望结果如下:

['hahahaha', 'hahaha']

我该如何解决?

1 个答案:

答案 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次或多次,但将其视为非捕获组

  • (?:...) - 匹配但未捕获所有内容