首页 > 解决方案 > 用逗号分割字符串,除非后跟空格或“+”

问题描述

我正在尝试用逗号分隔一个极长的字符串。但是,我有两个要求:

  1. 逗号后面不能跟空格
  2. 逗号后面不能跟 '+' 符号

例如,输入将是:

text = "hello,+how are you?,I am fine, thanks"

它的输出是:

['hello,+how are you?', 'I am fine, thanks']

即,分隔值的唯一逗号是后面没有“+”或空格的逗号

我已管理要求 1) 如下:

re.split(r',(?=[^\s]+)',text)

我不知道如何添加要求 2)

标签: pythonregexstringsplit

解决方案


最简单的解决方案是只查找您不想要的模式,并完全排除它。您可以在正则表达式中使用负前瞻来做到这一点。

>>> text = "hello,+how are you?,I am fine, thanks"
>>> re.split(r',(?![+ ])', text)
['hello,+how are you?', 'I am fine, thanks']

这将匹配,,除非它后跟文字+space.


推荐阅读