Python 在分隔符上分割字符串,但不在此类分隔符的某些变体上分割字符串

标签 python regex split regex-negation regex-lookarounds

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

相关文章:

java - 如何从Java中的字符串中提取部分域?

javascript - 使用正则表达式拆分字符串 accur 'undefined'

C++如何将其拆分为 vector 并使用它

Python将8个对象循环组合成3组,3-3-2

python - PyCharm 报告未使用的局部变量,但此变量已在局部命名空间中使用

c# - 在字母的第一个实例处分割文本

php - 正则表达式查找和表达并插入到中间

python - 使用 TensorFlow 使用三个或更多输入数字来预测数字

python - 在 Django 中,将 urls.py 重定向到的 Python 文件放在哪里?

PHP - 拆分丑陋的日期字符串,然后对其进行日期数学运算?