我想用“*”替换“组织”中的开头两个字母“或”,使用python的re.sub函数。我读了一些关于正则表达式的书,说\b
表示单词边界,所以我用\bor
作为模式。但我得到了:
>>> re.sub("\bor","*","organization")
'organization'
>>>
我想我应该得到* ganization。什么问题,我应该如何使用重新模式来获得我想要的东西?谢谢。
答案 0 :(得分:2)
您需要在此处使用raw-string:
>>> import re
>>> re.sub(r"\bor", "*", "organization")
'*ganization'
>>>
否则,Python会看到\b
,它会被转换为\x08
:
>>> '\b'
'\x08'
>>>
另一种解决方案是逃避反斜杠:
>>> import re
>>> re.sub("\\bor", "*", "organization")
'*ganization'
>>>
另一个(可能是最好的)解决方案是使用^
代替\b
:
>>> import re
>>> re.sub("^or", "*", "organization")
'*ganization'
>>>
在Regex中,使用^
就像这样意味着“匹配字符串的开头”。
答案 1 :(得分:0)
以下是使用内置replace
函数执行此操作的另一种方法。
string = "organization"
print string.replace(string[:2], "*")