# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"\n\n(.*?)Show Abstract - Show Citation"
test_str = ("Plenary Papers (1)\n"
"Peer-reviewed Papers (113)\n"
"PLENARY MANUSCRIPTS (1)\n"
"First Author Index\n\n"
"Harrer\n"
"Plenary Papers\n\n"
"Some title number one\n"
"John W. Doe\n"
"2018 Physics SOmething Proceedings\n"
"Full Text: Download PDF - PER-Central Record\n"
"Show Abstract - Show Citation\n"
"PEER REVIEWED MANUSCRIPTS (113)\n"
"First Author Index\n\n"
"Doe · Doe2 · Doe3 · Jonathan\n"
"Peer-reviewed Papers\n\n"
"Some title number two\n"
"Alex White, Paul Klee, and Jacson Pollock\n"
"2018 Physics Research Conference Proceedings, doi:10.1234/perc.2018.pr.White\n"
"Full Text: Download PDF - PER-Central Record\n"
"Show Abstract - Show Citation\n\n"
"Some title number three\n"
"Suzanne Heck, Alex Someone, John I. Smith, and Andrew Bourgogne\n"
"2018 Physics Education Research Conference Proceedings, doi:10.2345/perc.2018.pr.Heck\n"
"Full Text: Download PDF - PER-Central Record\n"
"Show Abstract - Show Citation\n\n"
"..")
matches = re.finditer(regex, test_str, re.DOTALL)
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