I want to split strings using a comma delimiter if the comma is preceded by a certain regex. Consider the case where my strings are in the format: \"(bunch of stuff that mig
You could use re.findall
instead of re.split
.
>>> import re
>>> s = "hi, hello! $$asdf, I am foo, bar $$jkl, cool"
>>> [j for i in re.findall(r'(.*?\$\$[^,]*),\s*|(.+)', s) for j in i if j]
['hi, hello! $$asdf', 'I am foo, bar $$jkl', 'cool']
OR
Use external regex module to support variable length lookbehind since re
won't support variable length look-behind assertions.
>>> import regex
>>> s = "hi, hello! $$asdf, I am foo, bar $$jkl, cool"
>>> regex.split(r'(?<=\$\$[^,]*),\s*', s)
['hi, hello! $$asdf', 'I am foo, bar $$jkl', 'cool']