Python 如果字符两侧都有字符,如何替换字符?

Python 如果字符两侧都有字符,如何替换字符?,python,regex,replace,Python,Regex,Replace,我一直在使用Python中的一些正则表达式,当我试图替换字符串a中的b(如果b两边都有任何字符)时,我陷入了困境。例如: 替换b:AAAAA 请勿更换b:aaa b aaa 正则表达式对我来说似乎不太容易,所以我该怎么做呢?您需要使用非单词边界 re.sub(r'\Bb\B', '', s) \B两个单词字符或两个非单词字符之间的匹配与\B一个单词字符和一个非单词字符之间的匹配相反您也可以使用lookarounds re.sub(r'(?<=\w)b(?=\w)','',s) 你能给出

我一直在使用Python中的一些正则表达式,当我试图替换字符串a中的b(如果b两边都有任何字符)时,我陷入了困境。例如:

替换b:AAAAA 请勿更换b:aaa b aaa
正则表达式对我来说似乎不太容易,所以我该怎么做呢?

您需要使用非单词边界

re.sub(r'\Bb\B', '', s)

\B两个单词字符或两个非单词字符之间的匹配与\B一个单词字符和一个非单词字符之间的匹配相反

您也可以使用lookarounds

re.sub(r'(?<=\w)b(?=\w)','',s)

你能给出更好的答案吗?你所举的例子有点模棱两可。弄清楚你叫什么A,叫什么b。那aaa bbb aaa呢?不清楚你的规则是什么,但我建议你调查一下周围环境。有人已经完美地回答了这个问题。我不需要解释太多,我只需要知道使用哪个正则表达式。我在谷歌或Python文档中找不到它……这很有效,非常感谢!这正是我所需要的:
>>>s = 'aaabaaa b wr'
>>>re.sub(r'(?<=\w)b(?=\w)','',s)
>>>'aaaaaa b wr'