fork(1) download
  1. import re
  2.  
  3. words = [
  4. 'jalan',
  5. 'ba-jalan',
  6. 'pem-porut#an',
  7. 'daun #kulu',
  8. 'daun#kulu',
  9. 'tarik-napas',
  10. 'tarik#napas',
  11. 'n-cium #bow',
  12. 'arau/araw',
  13. 'imbaw//nimbaw',
  14. 'dengo | nengo',
  15. 'dodop=am',
  16. '{di} dalam',
  17. 'di {dalam}'
  18. ]
  19.  
  20. for word in words:
  21. m = re.match(r'(?:\{[^-#{}/]+\})?(?:([^-#{}/]+)-)?([^-#{}/]+)(?:/[^-#{}/]+)?(?:#([^-#{}/]+))?', word)
  22. if m:
  23. print(repr(m.groups()))
  24. else:
  25. print("(no match: %s)" % word)
  26.  
Success #stdin #stdout 0.02s 9556KB
stdin
Standard input is empty
stdout
(None, 'jalan', None)
('ba', 'jalan', None)
('pem', 'porut', 'an')
(None, 'daun ', 'kulu')
(None, 'daun', 'kulu')
('tarik', 'napas', None)
(None, 'tarik', 'napas')
('n', 'cium ', 'bow')
(None, 'arau', None)
(None, 'imbaw', None)
(None, 'dengo | nengo', None)
(None, 'dodop=am', None)
(None, ' dalam', None)
(None, 'di ', None)