You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正则替换数字后的Foo报错:re.error: bad escape \K at position7

解决Python正则中\K报错的问题

Python标准库的re模块不支持\K断言(这是Perl/PCRE风格的语法),所以你写的[0-9]\KFoo会触发re.error。下面是两种可行的替代方案:

方案1:使用正向回顾后发断言

用(?<=[0-9])匹配数字后的位置,直接替换目标内容:

import re

target_text = "123123Foo 12312FooTest"
processed_text = re.sub(r'(?<=[0-9])Foo', r'\nFoo', target_text)
print(processed_text)

输出结果:

123123
Foo 12312
FooTest

方案2:使用捕获组

捕获前面的数字,替换时保留捕获内容并插入换行符:

import re

target_text = "123123Foo 12312FooTest"
processed_text = re.sub(r'([0-9])Foo', r'\1\nFoo', target_text)
print(processed_text)

输出结果与方案1完全一致。

扩展:匹配连续数字后的Foo

如果需要匹配一个或多个连续数字后面的Foo,只需把正则中的[0-9]改为[0-9]+即可,两种方案都适用:

  • 方案1正则:(?<=[0-9]+)Foo
  • 方案2正则:([0-9]+)Foo

内容的提问来源于stack exchange,提问作者mo5br

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 21:22:44