我想基于定界符'-'在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/

10-11 19:37