fork(3) download
  1. # your code goes here
  2. import re
  3.  
  4. p = "(%?)([abc]+)([123]+)(?P<end>[%#])"
  5. s = "%aaba2321%"
  6. mo = re.match(p, s)
  7.  
  8. named = dict()
  9. unnamed = dict()
  10. all = mo.groups()
  11.  
  12. for k,v in mo.groupdict().items():
  13. named[mo.span(k)] = v
  14. for i,v in enumerate(all):
  15. sp = mo.span(i + 1)
  16. if sp not in named:
  17. unnamed[sp] = v
  18.  
  19. print(named)
  20. print(unnamed)
Success #stdin #stdout 0.03s 8688KB
stdin
Standard input is empty
stdout
{(9, 10): '%'}
{(0, 1): '%', (1, 5): 'aaba', (5, 9): '2321'}