python - Regex Capture Multiple Phrases after One -


i trying figure out how make regex capture bunch of items come after 1 particular thing. using python this. 1 example of using text b <4>.<5> <6> <1> m<2> . <3> intent of capturing 1, 2, , 3. thought regular expression a.*?<(.+?)> work, caputures final 3 using python re.findall. can this?

the regex module (going replace re in future pythons) supports variable lookbehinds, makes easy:

s = "b <4>.<5> <6> a23 <1> m<2> . <3>"  import regex print regex.findall(r'(?<=a\d+.*)<.+?>', s) # ['<1>', '<2>', '<3>'] 

(i'm using a\d+ instead of a make thing interesting). if you're bound stock re, you're forced ugly workarounds this:

import re print re.findall(r'(<[^<>]+>)(?=(?:.(?!a\d+))*$)', s) # ['<1>', '<2>', '<3>'] 

or pre-splitting:

print re.findall(r'<.+?>', re.split(r'a\d+', s)[-1]) 

Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -