# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(\w{2}).*?(\1)"
test_str = ("This is a repeated repeated word.zz zz zz\n\n"
"How would you find pairs of letters that occur twice in a string using regex with Python?\n\n"
"I want to iterate through a list of strings, find the ones that have repeating pairs of letters, and put them into a list. The letters don't need to be the same, the pair just has to repeat, though the letters can be the same.\n\n"
"Ex:\n"
"this one has xx twice so I want to keep this string:\n"
"xxhgfhdeifhjfrikfoixx\n\n"
"this one would be kept as well, because hd is repeated: \n"
"kwofhdbugktrkdidhdnbk\n\n"
"The best I got was to find the pairs: ([a-z][a-z])\\1|([a-z])\\2\n\n"
"I need to find which pairs repeat in the string.")
matches = re.finditer(regex, test_str, re.IGNORECASE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html