((\w)\2{2,})
匹配 3 个或更多连续字符:
In [71]: import re
In [72]: s = r'http://www.google.com/search=ooo-jjjj'
In [73]: re.findall(r'((\w)\2{2,})', s)
Out[73]: [('www', 'w'), ('ooo', 'o'), ('jjjj', 'j')]
In [78]: [match[0] for match in re.findall(r'((\w)\2{2,})', s)]
Out[78]: ['www', 'ooo', 'jjjj']
(\w)
匹配任何字母数字字符。
((\w)\2)
匹配任何字母数字字符后跟相同的字符,因为\2
匹配组号 2 的内容。
由于我嵌套了括号,组号 2 指的是匹配的字符\w
.
然后把它们全部放在一起,((\w)\2{2,})
匹配任何字母数字字符,后跟重复的相同字符额外2次或以上.
总的来说,这意味着正则表达式要求字符重复 3 次或更多次。