我在python中有一个字符串如下:
"\\B1\\B1xxA1xxMdl1zzInoAEROzzMofIN"
我想把字符串作为
"B1xxA1xxMdl1zzInoAEROzzMofIN"
我认为这可以使用正则表达式完成但尚未实现。请给我一个主意。
答案 0 :(得分:3)
st = "\B1\B1xxA1xxMdl1zzInoAEROzzMofIN"
s = re.sub(r"\\","",st)
idx = s.rindex("B1")
print s[idx:]
output = 'B1xxA1xxMdl1zzInoAEROzzMofIN'
OR
st = "\B1\B1xxA1xxMdl1zzInoAEROzzMofIN"
idx = st.rindex("\\")
print st[idx+1:]
output = 'B1xxA1xxMdl1zzInoAEROzzMofIN'
答案 1 :(得分:3)
这是一个尝试:
import re
s = "\\B1\\B1xxA1xxMdl1zzInoAEROzzMofIN"
s = re.sub(r"\\[^\\]+\\","", s)
print s
在http://py-ide-online.appspot.com上进行了测试(但找不到分享方式)
[编辑]有关解释,请查看Python regex documentation page以及此SO问题的第一条评论:
How to remove symbols from a string with Python?
因为使用括号[]
可能会很棘手(恕我直言)
在这种情况下,[^\\]
表示除了两个反斜杠\\
之外的任何内容。
所以[^\\]+
表示一个或多个匹配除两个反斜杠之外的任何字符\\
。
答案 2 :(得分:0)
如果字符串的所需部分始终位于\
字符的RHS上,那么您可以使用:
string = "\\B1\\B1xxA1xxMdl1zzInoAEROzzMofIN"
string.rpartition("\\")[2]
output = 'B1xxA1xxMdl1zzInoAEROzzMofIN'