假设我有一个输入字符串<preference name="SplashScreenBackgroundColor" value="0xFFFFFFFF"/>
,我打算用给定的ID替换-1 acho coisa direitos direitos ah
,比如说direitos
,这样输出的字符串就是13
>
当前状态如下
-1 acho coisa 13 13 ah
由于默认情况下pattern = r"\s" + re.escape(token) + r"\s"
token_id_output = ' ' + token_id + ' '
content = re.sub(pattern, token_id_output, content)
方法是不重叠的,因此该解决方案仅匹配并替换了第一个实例。建议使用超前运算符re.sub()
来缓解此问题,但在这种情况下似乎找不到正确的用法。有什么想法可以正确实现重叠匹配吗?
答案 0 :(得分:0)
使用\b
标记单词边界,而不是\s
:
In [41]: re.sub(r'\bdireitos\b', '13', '-1 acho coisa direitos direitos a')
Out[41]: '-1 acho coisa 13 13 a'