fork download
  1. import re
  2. RE_LABEL1 = r'[cvx]\d+(?![.]r)'
  3. RE_LABEL2 = r'v\d+\.r\d+'
  4. RE_LABEL = r'%s|%s' % (RE_LABEL1, RE_LABEL2)
  5. RE_LIT = r'\!?%s),?\s*' % RE_LABEL
  6. RE_VEC = r'(?:(?:%s)+' % RE_LIT
  7. test = '[v3,v4,v5.r1,!v6,v7,x8,v9,v10], [v1, v2]'
  8. print RE_VEC # it is bad
  9. print re.findall(RE_VEC, test)
  10. print re.findall(r'(?:(?:\!?[cvx]\d+(?![.]r)|v\d+\.r\d+),?\s*)+', test)
Success #stdin #stdout 0.01s 7692KB
stdin
Standard input is empty
stdout
(?:(?:\!?[cvx]\d+(?![.]r)|v\d+\.r\d+),?\s*)+
['v3,v4,v5.r1,!v6,v7,x8,v9,v10', 'v1, v2']
['v3,v4,v5.r1,!v6,v7,x8,v9,v10', 'v1, v2']