【发布时间】:2017-07-17 12:45:29
【问题描述】:
我有一个代码(将“Z”视为转义字符,将“,”视为分隔符):
import re
a = 'aaa,bbbZ,cccZZ,dddZZZ,eee'
print re.split(r'(?<!Z)[,]+', a)
结果是:
['aaa', 'bbbZ,cccZZ,dddZZZ,eee']
但我需要处理结果的转义序列(在我的示例中,转义字符是 'Z'):
['aaa', 'bbbZ,cccZZ', 'dddZZZ,eee']
当我尝试使用可变宽度模式进行否定后向断言时:
print re.split(r'(?<!(ZZ)*Z)[,]+', a)
上面写着:
sre_constants.error:look-behind 需要固定宽度的模式
【问题讨论】:
-
请先说明你想做什么。不是如何你这样做......
-
我的目标在标题中
-
但是根本没有转义...
-
@WillemVanOnsem "escape char is 'Z'" 如果有帮助,可以将 Z 视为反斜杠。