Python 按分隔符拆分字符串,但不拆分此类分隔符的特定变体
Python split string on delimiter but not on a certain variation of such delimiter
我想根据分隔符'--'拆分Python中的一个长字符串,但如果'--'紧接着'fail'则不拆分。然后将删除的定界符“--”放回拆分数组中的结果字符串中。下面是一个例子。
我要:
"--conf example1 --conf curl --fail exception --env example2"
拆分后变为:
["--conf example1", "--conf curl --fail exception", "--env example2"]
您可以结合使用正前瞻和负前瞻:
\s+(?=--)(?!--fail)
因此,我们在这里用空格字符拆分,正前瞻性寻找双破折号,负前瞻性忽略 --fail
:
>>> re.split(r'\s+(?=--)(?!--fail)', "--conf example1 --conf curl --fail exception --env example2")
['--conf example1', '--conf curl --fail exception', '--env example2']
注意这里--fail-foo
也不会拆分。但是,您可以在负前瞻中添加一个空格字符:
\s+(?=--)(?!--fail\s)
我想根据分隔符'--'拆分Python中的一个长字符串,但如果'--'紧接着'fail'则不拆分。然后将删除的定界符“--”放回拆分数组中的结果字符串中。下面是一个例子。
我要:
"--conf example1 --conf curl --fail exception --env example2"
拆分后变为:
["--conf example1", "--conf curl --fail exception", "--env example2"]
您可以结合使用正前瞻和负前瞻:
\s+(?=--)(?!--fail)
因此,我们在这里用空格字符拆分,正前瞻性寻找双破折号,负前瞻性忽略 --fail
:
>>> re.split(r'\s+(?=--)(?!--fail)', "--conf example1 --conf curl --fail exception --env example2")
['--conf example1', '--conf curl --fail exception', '--env example2']
注意这里--fail-foo
也不会拆分。但是,您可以在负前瞻中添加一个空格字符:
\s+(?=--)(?!--fail\s)