# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"doi.+(10\.\d{4,6}\/[^\"'&<% \t\n\r\f\v]+)"
test_str = ("The spontaneous emission rate of semiconductors displays a saturation at high carrier injection\n"
"densities due to the filling of the conduction and valence bands. We have carried out time-resolved\n"
"experiments, whereby a semiconductor quantum well at room temperature is excited optically by a\n"
"short laser pulse and the time decay of its luminescence is measured for different injected carrier\n"
"densities. The luminescence decay rate, plotted as a function of injected carrier density, deviates\n"
"strongly from the well-known quadratic recombination law, valid at low carrier densities, displaying\n"
"a saturation. We have developed a simple analytic theory that accounts for this saturation and can\n"
"describe adequately the recombination kinetics of highly excited semiconductor quantum wells.\n"
"© 2002 American Institute of Physics.[DOI: 10.1063/1.1519344]")
matches = re.search(regex, test_str, re.IGNORECASE)
if matches:
print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group()))
for groupNum in range(0, len(matches.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.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