# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"\d{3}-\d{4}"
test_str = ("[Verse 1]\n"
"Jenny, Jenny, who can I turn to?\n"
"You give me somethin' I can hold on to\n"
"I know you think I'm like the others before\n"
"Who saw your name and number on the wall\n\n"
"[Chorus 1]\n"
"Jenny, I got your number\n"
"I need to make you mine\n"
"Jenny, don't change your number\n\n"
"[Post-Chorus]\n"
"867-5309\n"
"867-5309\n"
"867-5309\n"
"867-5309\n\n"
"[Verse 2]\n"
"Jenny, Jenny, you're the girl for me\n"
"Oh, you don't know me, but you make me so happy\n"
"I tried to call you before, but I lost my nerve\n"
"I tried my imagination, but I was disturbed\n\n"
"[Chorus 1]\n"
"Jenny, I got your number\n"
"I need to make you mine\n"
"Jenny, don't change your number\n\n"
"[Post-Chorus]\n"
"867-5309\n"
"867-5309\n"
"867-5309\n"
"867-5309\n\n"
"[Bridge]\n"
"I got it, (I got it), I got it\n"
"I got your number on the wall\n"
"I got it, (I got it), I got it\n"
"For a good time, for a good time call\n\n"
"[Chorus 2]\n"
"Jenny, don't change your number\n"
"I need to make you mine\n"
"Jenny, I call your number\n\n"
"[Post-Chorus]\n"
"867-5309\n"
"867-5309\n"
"867-5309\n"
"867-5309\n\n"
"[Breakdown]\n"
"Jenny, Jenny, who can I turn to?\n"
"867-5309\n"
"For the price of a dime I can always turn to you\n"
"867-5309\n\n"
"[Outro]\n"
"867-5309\n"
"867-5309\n"
"867-5309\n"
"867-5309\n"
"5309\n"
"867-5309 (5309)\n"
"867-5309 (5309)\n"
"867-5309")
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