如何匹配正则表达式中的重叠实例

时间:2018-11-28 12:22:11

标签: python regex

假设我有一个输入字符串<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()来缓解此问题,但在这种情况下似乎找不到正确的用法。有什么想法可以正确实现重叠匹配吗?

1 个答案:

答案 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'