正则表达式替换无法在Python中用正则表达式变量替换

拉胡尔·瓦玛(Rahul Varma)

我们有大量文件需要转换为json,这是一个文件的样本数据

{
1=2,
4=tt,
6=9
}
{
1=gg,
2=bd,
6=bb
}

我正在使用python转换正则表达式可以正常工作的数据,但是当我在python代码中实现时相同的正则表达式不起作用,这是代码

import numpy as np
f = open('/Users/rahulvarma/Downloads/2020120911.txt', 'r')
content = f.read()
import re
regex = r"([0-9]+)(=)((.*)+)"
subst = "\"$1\":\"$3\","
result = re.sub(regex, subst, content,  0, re.MULTILINE)

if result:
    print (result)

但是我是

{
"$1":"$3",
"$1":"$3",
"$1":"$3"
}
{
"$1":"$3",
"$1":"$3",
"$1":"$3"
}

我的预期输出应该是

{
"1":"2",
"4":"tt",
"6":"9"
}
{
"1":"gg",
"2":"bd",
"6":"bb"
}
阿努巴瓦

您可以使用此正则表达式进行搜索:

(\d+)=([^,\n]*)(,|$)

并替换为:

"\1":"\2"\3

正则演示

码:

regex = r"(\d+)=([^,\n]*)(,|$)"

result = re.sub(regex, r'"\1":"\2"\3', input_str, 0, re.MULTILINE)

正则表达式详细信息:

  • (\d+):匹配捕获的#1组中的1个以上的数字
  • =:匹配=字符
  • ([^,\n]*):匹配0个或多个,\n属于捕获组#2的字符
  • (,|$):匹配逗号或捕获组3中的行尾

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章