Python 如何防止're.sub'出现'rstrip'ing?

Python 如何防止're.sub'出现'rstrip'ing?,python,regex,Python,Regex,说你有 >>> txt ' * a * ***b*** *c ' 我想将所有未重复出现的“*”替换为“!”。所以我想 >>> import re >>> re.sub('[^\*]\*[^\*]', '!', txt) '!a!***b***! ' 我会做的。但我的“c”在哪里?例如,如何保存它?您可以使用lookaround (?<!\*)\*(?!\*) ? - 匹配的前面不应该有* \*-匹配* ?

说你有

>>> txt
' * a * ***b*** *c '
我想将所有未重复出现的“*”替换为“!”。所以我想

>>> import re
>>> re.sub('[^\*]\*[^\*]', '!', txt)             
'!a!***b***! '

我会做的。但我的“c”在哪里?例如,如何保存它?

您可以使用lookaround

(?<!\*)\*(?!\*)
? - 匹配的前面不应该有* \*-匹配* ?!\* - 匹配后不应出现*
使用lookarounds:re.subr'?@keepAlive您也在删除空格吗?这就是为什么他要你使用Lookarounds的原因我已经回答了一个相同的问题,请看下面的选民关心评论不是我,但我认为你的答案已经在评论中准备好了?@CharifDZ-yes我知道。实际上,我已经删除了一条评论,其中我要求Wiktor重写他的评论作为回答。@keepAlive您可以根据需要更改替换值,您可以使用演示,通过替换为不同的值@CharifDZ,评论和回答之间有区别,据我所知,将答案作为评论发布并不被认为是一种好的做法,因此,评论和回答之间的时间差也很短,如果反对者只是认为这足以支持反对票,我很高兴拥有反对票