有没有更好的方法来拆分包含转义的分隔符的字符串。
string = "fir\&st_part&secon\&d_part"
print(string.split('&'))
# is giving me
>>> ['fir\\', 'st_part', 'secon\\', 'd_part']
# but not
>>> ['fir&st_part', 'secon&d_part']
我在\
和&
中的fir&st_part
之前添加了一个转义字符secon&d_part
,目的是拆分函数将转义后续字符。
如果没有使用字符串拆分,有没有更好的方法呢?
答案 0 :(得分:1)
您可以使用正则表达式!
如果?<!
字符串的当前位置前面没有后向(\,两个斜杠来逃避它)斜线和&符号(&amp;)
>>> import re
>>> re.split(r'(?<!\\)&', string)
['fir\\&st_part', 'secon\\&d_part']
使用结果列表,您可以迭代并替换转义的'\&amp;'与'&amp;'如果有必要的话!
>>> import re
>>> print [each.replace("\&","&") for each in re.split(r'(?<!\\)&', string)]
['fir&st_part', 'secon&d_part']
答案 1 :(得分:0)
可以使用正则表达式:
import re
string = "fir\&st_part&secon\&d_part"
re.split(r'[^\\]&', string)
# ['fir\\&st_par', 'secon\\&d_part']