Friday, 11 November 2022

Check consecutive character regex in Python

 ((\w)\2{2,}) matches 3 or more consecutive characters:

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) matches any alphanumeric character.

((\w)\2) matches any alphanumeric character followed by the same character, since \2 matches the contents of group number 2. Since I nested the parentheses, group number 2 refers to the character matched by \w.

Then putting it all together, ((\w)\2{2,}) matches any alphanumeric character, followed by the same character repeated 2 or more additional times.

In total, that means the regex require the character to be repeated 3 or more times.


Source : https://stackoverflow.com/questions/7147796/how-to-use-re-to-find-consecutive-repeated-chars

No comments:

Post a Comment