Python 使用delimeter拆分带转义delimeter的字符串
有没有更好的方法来拆分包含转义delimeter的字符串Python 使用delimeter拆分带转义delimeter的字符串,python,string,python-3.x,split,Python,String,Python 3.x,Split,有没有更好的方法来拆分包含转义delimeter的字符串 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
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\u部分
和secon&d\u部分
中的\
之前添加了一个转义字符\
,目的是分割函数将转义以下字符
如果不使用字符串拆分,还有更好的方法吗?可以使用正则表达式:
import re
string = "fir\&st_part&secon\&d_part"
re.split(r'[^\\]&', string)
# ['fir\\&st_par', 'secon\\&d_part']
你可以使用正则表达式 如果
,则拆分?字符串的当前位置前面没有倒斜杠(\,两个斜杠转义)、斜杠和符号(&)
>>重新导入
>>>关于拆分(r’(?)?
>>> import re
>>> re.split(r'(?<!\\)&', string)
['fir\\&st_part', 'secon\\&d_part']
>>> import re
>>> print [each.replace("\&","&") for each in re.split(r'(?<!\\)&', string)]
['fir&st_part', 'secon&d_part']