python中关于单词边界的正则表达式模式

python中关于单词边界的正则表达式模式,python,regex,Python,Regex,我想用*使用python的re.sub函数替换开头的两个字母或in-organization。我读过一些关于正则表达式的书,其中说\b代表单词边界,所以我使用\bor作为模式。但我得到了: >>> re.sub("\bor","*","organization") 'organization' >>> 我想我应该有组织。怎么了?我应该如何使用re模式来获得我想要的?谢谢。您需要在此处使用: 否则,Python将看到\b,它将被转换为\x08: 另一个解决方案

我想用*使用python的re.sub函数替换开头的两个字母或in-organization。我读过一些关于正则表达式的书,其中说\b代表单词边界,所以我使用\bor作为模式。但我得到了:

>>> re.sub("\bor","*","organization")
'organization'
>>>
我想我应该有组织。怎么了?我应该如何使用re模式来获得我想要的?谢谢。

您需要在此处使用:

否则,Python将看到\b,它将被转换为\x08:

另一个解决方案是避开反斜杠:

>>> import re
>>> re.sub("\\bor", "*", "organization")
'*ganization'
>>>
另一种可能也是最好的解决方案是使用^代替\b:


在正则表达式中,使用^like表示字符串开头匹配。

这里是另一种使用内置替换函数的方法

string = "organization"
print string.replace(string[:2], "*")

不要使用图片。以纯文本格式输入。我强烈建议您尝试在
>>> import re
>>> re.sub("\\bor", "*", "organization")
'*ganization'
>>>
>>> import re
>>> re.sub("^or", "*", "organization")
'*ganization'
>>>
string = "organization"
print string.replace(string[:2], "*")