如何在"/"分隔符上拆分字符串,但在'\'之后发生'/'时防止分裂

str*_*eek 1 python regex

我试图使用由'/'字符分隔的Python来分割字符串数据.问题是该字符串可能有多次出现'/'字符,但我想只使用'/'而不使用'/ /'将其拆分

例如,我试图将字符串'1\/ 2/CD'拆分为'1\/ 2'和'CD'

nos*_*klo 5

在正则表达式中使用负向lookbehind断言:

>>> re.split(r'(?<!\\)/', r'1\/2/CD')
['1\\/2', 'CD']
Run Code Online (Sandbox Code Playgroud)

来自文档:

(?<!...)
Run Code Online (Sandbox Code Playgroud)

如果字符串中的当前位置前面没有匹配,则匹配....这被称为 负面的后观断言.与正向lookbehind断言类似,包含的模式必须仅匹配某些固定长度的字符串.以负反向断言开始的模式可以在被搜索的字符串的开头匹配.

当第一个切片为空时,这种方法有效:

>>> re.split(r'(?<!\\)/', r'/CD')
['', 'CD']
Run Code Online (Sandbox Code Playgroud)