fork download
  1. import re, collections
  2.  
  3. parts = [('p1', r'(?P<p1>[ABC]{1,3})'),
  4. ('p2', r'(?P<p2>.{0,2})'),
  5. ('p3', r'(?P<p3>[DEFG])'),
  6. ('p4', r'(?P<p4>.{2,3})'),
  7. ('p5', r'(?P<v>V)')]
  8. pod = collections.OrderedDict(parts)
  9. reg = "".join([v for k,v in pod.items()])
  10. print(reg)
  11. test_str = "AXDXXV"
  12. m = re.search(reg, test_str)
  13. if m:
  14. m_dict = m.groupdict()
  15. print(m_dict)
  16. print("{} => {}".format(m.group("p1"), pod["p1"]))
Success #stdin #stdout 0s 23688KB
stdin
Standard input is empty
stdout
(?P<p1>[ABC]{1,3})(?P<p2>.{0,2})(?P<p3>[DEFG])(?P<p4>.{2,3})(?P<v>V)
{'p2': 'X', 'p3': 'D', 'p1': 'A', 'p4': 'XX', 'v': 'V'}
A => (?P<p1>[ABC]{1,3})