我在python中有一些字符串,例如:
1) 'a_1_2+c_2_4 + 5'
2) 'ctl_1_3/80'
3) 'd_10_55'
...
我想用re替换它们。它们应该看起来像:
1) 'p.get("a_1_2", 0)+p.get("c_2_4", 0) + 5'
2) 'p.get("ctl_1_3", 0)/80'
3) 'p.get("d_10_55", 0)'
你能帮我用正则表达式吗?
PS p是python中的简单字典
In [7]: s = 'a_1_2+c_2_4 + 5'
In [8]: re.sub(r'(\w+_\d+_\d+)', r'p.get("\1", 0)', s)
Out[8]: 'p.get("a_1_2", 0)+p.get("c_2_4", 0) + 5'
目前尚不清楚什么规则支配第二个参数p.get()
。它出现在第一个示例中,但没有出现在其他两个示例中。
您是否正在尝试使用 Python 构建 JavaScript 代码?如果您的字符串包含双引号或任何其他 JavaScript 特殊字符会怎样?
虽然可以进行正则表达式替换,但我建议将数据作为 JSON 对象(使用 Python 的 json 库)传递给客户端并在客户端处理该数据。这将导致更清晰和更可支持的代码。