regex - Nested regular expressions (python) -


i'm having trouble writing regular expression following. have vector of literals (see re_lit) , find vectors in line of text i'm having difficulty writing regular expression. seem have issues parenthesis acting groups , not parenthesis.

re_label1 = r'[cvx]\d+(?![.]r)$' re_label2 = r'v\d+\.r\d+' re_label = r'(%s)|(%s)' % (re_label1, re_label2) re_lit = r'!?%s' % re_label re_vec = r'\[\s*(\s*%s\s*,?\s*)+\s*\]' % re_lit 

example string match:

test = 'c1 = blah([v3,v4,v5.r1,!v6,v7,x8,v9,v10], [v1, v2], [x5.r1])' 

expected results:

> print re.findall(re_vec, test) ['[v3,v4,v5.r1,!v6,v7,x8,v9,v10]', '[v1, v2]'] 

thank ahead of time help.

you can use following fix:

import re re_label1 = r'[cvx]\d+(?![.]r)' re_label2 = r'v\d+\.r\d+' re_label = r'%s|%s' % (re_label1, re_label2) re_lit = r'\!?%s),?\s*' % re_label re_vec = r'(?:(?:%s)+' % re_lit test = '[v3,v4,v5.r1,!v6,v7,x8,v9,v10], [v1, v2]' print re.findall(re_vec, test) 

output of ideone demo:

['v3,v4,v5.r1,!v6,v7,x8,v9,v10', 'v1, v2'] 

Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -