fork download
  1. import re
  2. str='JK+6.00,PP*2,ZZ,GROUPO'
  3. full_pattern=r'^(?:[A-Z]{2,12}(?:[*+]\d+(?:\.\d{1,2})?)?(?:,|$))*$'
  4. extract_pattern=r'(?P<block>(?P<subject>[A-Z]{2,12})(?:(?P<operation>[*+])(?P<value>\d+(?:\.\d{1,2})?))?)'
  5. if re.fullmatch(full_pattern, str):
  6. for match in re.finditer(extract_pattern, str):
  7. print(match.groups())
Success #stdin #stdout 0.01s 9992KB
stdin
Standard input is empty
stdout
('JK+6.00', 'JK', '+', '6.00')
('PP*2', 'PP', '*', '2')
('ZZ', 'ZZ', None, None)
('GROUPO', 'GROUPO', None, None)