python 2.4中的正则表达式

时间:2012-01-06 07:53:00

标签: python regex

我在python中有一个字符串如下:

"\\B1\\B1xxA1xxMdl1zzInoAEROzzMofIN"

我想把字符串作为

"B1xxA1xxMdl1zzInoAEROzzMofIN"

我认为这可以使用正则表达式完成但尚未实现。请给我一个主意。

3 个答案:

答案 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'