import re
regex = re.compile(r"(car( [^ ]*){1,10} house)|(house( [^ ]*){1,10} car)", flags=re.MULTILINE)
test_str = ("car word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 house\n"
"house word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 car\n"
"house word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word 11 car")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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