首页 > 解决方案 > 如何在 python 中使用 \K 进行正则表达式?

问题描述

\K意味着重置匹配的开始,这在不支持复杂的后视时非常有用(即,它不允许 + 和 * 用于后视)。它很好地满足了我的需求,但是,当我尝试在 python 中使用它时,它会报告bad escape \K. 以下是我的python代码:

re.sub(r'\[\n[ ]+\d+, ?\n[ ]+\K\d+(?=, ?\n[ ]+(?:true|false)\n[ ]+\])', '__table1.column__', content)

标签: pythonregexpython-3.x

解决方案


您可以改用 2 个捕获组:

(\[\n[ ]+\d+, ?\n[ ]+)\d+(, ?\n[ ]+(?:true|false)\n[ ]+\])

Python 演示| 正则表达式演示

在更换使用中:

\1__table1.column__\2

例如

re.sub(
    r'(\[\n[ ]+\d+, ?\n[ ]+)\d+(, ?\n[ ]+(?:true|false)\n[ ]+\])',
    r'\1__table1.column__\2',
    content
)

推荐阅读