我想基于定界符'-'在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 - Python在定界符上分割字符串,但不在此定界符的某些变体上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52882666/