fork download
  1. import re
  2.  
  3. examples = [
  4. "D1", # expected: ('1')
  5. "D1sjdgf", # ('1')
  6. "D1.2", # ('1', '2')
  7. "D1.2.3", # ('1', '2', '3')
  8. "D3.10.3x", # ('3', '10', '3')
  9. "D3.10.11" # ('3', '10', '11')
  10. ]
  11.  
  12. rx = re.compile(r'^D(\d+)(?:\.(\d+)(?:\.(\d+))?)?')
  13.  
  14. for s in examples:
  15. result = rx.search(s)
  16. print(s, result.groups())
  17.  
Success #stdin #stdout 0.03s 9360KB
stdin
Standard input is empty
stdout
D1 ('1', None, None)
D1sjdgf ('1', None, None)
D1.2 ('1', '2', None)
D1.2.3 ('1', '2', '3')
D3.10.3x ('3', '10', '3')
D3.10.11 ('3', '10', '11')