Python split string based on conditional

前端 未结 2 638
梦如初夏
梦如初夏 2021-01-13 04:51

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

2条回答
  •  粉色の甜心
    2021-01-13 05:26

    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']
    

提交回复
热议问题