仅当某个字符串不直接跟在另一个特定字符之后时,才在该字符上拆分字符串

gdo*_*371 3 python string

我有以下代码行,它data2根据空白实例将字符串拆分为一个列表:

string_list = data2.split()
Run Code Online (Sandbox Code Playgroud)

但是,在我的某些数据中,格式中包含日期"28, Dec"。上面的代码在我不想要的日期和月份之间的空白处拆分。有没有办法我可以说“在空白处拆分,但如果在逗号之后就不行”?

Reu*_*ani 6

您需要使用正则表达式

>>> re.split('(?<!,) ', 'blah blah, blah')
['blah', 'blah, blah']
Run Code Online (Sandbox Code Playgroud)

从链接:

(?<!...)如果字符串中的当前位置前面没有匹配...,则匹配。这称为否定回溯断言。与正向后视断言类似,包含的模式必须只匹配某个固定长度的字符串。以否定的后视断言开头的模式可能会在被搜索字符串的开头匹配。