# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(contrat|bail|engagement)(\sde)? (flexible|courte dur[ée]e|sans engagement)"
test_str = ("contrat flexible\n"
"bail flexible\n"
"bail de courte durée\n"
"contrat de courte durée\n"
"engagement de courte durée\n"
"contrat sans engagement\n"
"bail sans engagement\n"
"bail courte durée\n\n"
"contrat flexible de mise à disposition\n"
"bail de courte durée renouvelable\n"
"contrat flexible de prestation de service\n"
"contrat flexible et de courte durée\n\n"
"bail flexible (engagement minimum x mois)\n"
"contrat de courte durée (x mois à x ans)\n"
"bail de courte durée : x à x ans\n"
"bail de courte durée de x mois\n"
"bail flexible sur x ans \n"
"bail de courte durée jusqu'au xx/xx/xxxx")
matches = re.finditer(regex, test_str, re.MULTILINE)
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