fork download
  1. import re
  2. t = "translate(44,22) rotate(55,6,7) scale(2)"
  3. num = "[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?"
  4. types = "matrix|translate|rotate|scale|skewX|skewY"
  5. regex = f"({types})\((?P<arg1>{num})(?:,(?P<arg2>{num}))?(?:,(?P<arg3>{num}))?(?:,(?P<arg4>{num}))?(?:,(?P<arg5>{num}))?(?:,(?P<arg6>{num}))?\)" # <- 'i' as an increasing number
  6. for match in re.finditer(regex, t):
  7. print({k:v for k,v in match.groupdict().items() if v is not None})
Success #stdin #stdout 0.02s 9456KB
stdin
Standard input is empty
stdout
{'arg1': '44', 'arg2': '22'}
{'arg1': '55', 'arg2': '6', 'arg3': '7'}
{'arg1': '2'}