Python中re.sub正则$分组引用失效,求JS等效写法
解决Python re.sub分组引用不生效的问题
在Python的re.sub中,分组引用的语法和JS、VS Code不同,你不能用$1、$2来引用捕获分组,而是需要用\1、\2这类语法。
你的原代码:
re.sub("( |\t)([a-zA-Z0-9_]+) = ", "$1\"$2\":", string)
修改为:
re.sub(r"( |\t)([a-zA-Z0-9_]+) = ", r"\1\"\2\":", string)
补充说明:
- 改用
\1、\2替代$1、$2,这是Pythonre模块识别分组引用的标准写法 - 推荐在正则表达式和替换字符串前加
r前缀(原始字符串),避免Python对反斜杠进行额外转义,减少出错概率 - 也可以用单引号包裹替换字符串,这样双引号无需转义,写法更简洁:
re.sub(r"( |\t)([a-zA-Z0-9_]+) = ", r'\1"\2":', string)
这样修改后,就能正确引用分组内容,实现你想要的替换效果。
内容的提问来源于stack exchange,提问作者Jeffrey Winekenburg
相关产品推荐
相关产品推荐

