# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"<li>(Pg_.*)<\/li>"
test_str = ("<ul>\n"
" <li><a href=\"#symbols\">Symbol report</a></li>\n"
"<ul>\n"
" <li><a href=\"#symbolsConsistency\">Consistency</a></li>\n"
" <li><a href=\"#symbolCharacteristics\">Symbol characteristics</a></li>\n"
" <li><a href=\"#basicSymbols\">Display of basic symbols</a></li>\n\n\n"
" <ul>\n"
" <li>Pg_1_qds_Bin_Indicator_2</li>\n"
" <ul>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionalignment] = (Right)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptiontextcolor] = (Color {0, 0, 0, 255})</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.isdescriptiondisplayed] = (true)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontstyle] = (Normal)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontposition] = (LEFT)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptiontext] = (v1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.backgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.digitnumber] = (8)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetfont] = (FONT1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.shortname] = (Pg_1_qds_Bin_Indicator_2)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.precision] = (2)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetuserfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetuserfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetuserfontstyle] = (NORMAL)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.dynamicbackgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.longname] = (Pg_1_qds_Bin_Indicator_2_v1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.heith] = (32)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.weigth] = (50)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.poxX] = (352)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.poxY] = (116)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.valuealignment] = (Left)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.value_0] = (Off)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.value_1] = (On)</li>\n"
" </ul>\n"
" <li>Pg_1_qds_Bin_Indicator_3</li>\n"
" <ul>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionalignment] = (Right)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptiontextcolor] = (Color {0, 0, 0, 255})</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.isdescriptiondisplayed] = (true)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontstyle] = (Normal)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.descriptionfontposition] = (LEFT)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptiontext] = (v1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.backgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.digitnumber] = (8)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetfont] = (FONT1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.shortname] = (Pg_1_qds_Bin_Indicator_3)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.precision] = (2)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetuserfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.widgetuserfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetuserfontstyle] = (NORMAL)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.dynamicbackgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.longname] = (Pg_1_qds_Bin_Indicator_3_v1)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.heith] = (32)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.weigth] = (50)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.poxX] = (446)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.poxY] = (187)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.valuealignment] = (Left)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.value_0] = (Off)</li>\n"
" <li>[QDSConsistency.report.field.logicIndicator.value_1] = (On)</li>\n"
" </ul>\n"
" </ul>\n"
" <p><em>Analog indicator :</em></p>\n"
" <ul>\n"
" <li>Pg_1_qds_Ana_Indicator_1</li>\n"
" <ul>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptionalignment] = (Right)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptiontextcolor] = (Color {0, 0, 0, 255})</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.isdescriptiondisplayed] = (true)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptionfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptionfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptionfontstyle] = (Normal)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptionfontposition] = (LEFT)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.descriptiontext] = (v0)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.backgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.digitnumber] = (8)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetfont] = (FONT1)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.shortname] = (Pg_1_qds_Ana_Indicator_1)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.precision] = (2)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetuserfontfamily] = (Arial)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetuserfontsize] = (11 pt)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.widgetuserfontstyle] = (NORMAL)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.dynamicbackgroundcolor] = (Color {238, 238, 238, 255})</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.longname] = (Pg_1_qds_Ana_Indicator_1_v0)</li>\n"
" <li>[QDSConsistency.report.field.analogIndicator.heith] = (32)</li>")
matches = re.finditer(regex, test_str)
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