0

我在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中的简单字典

4

2 回答 2

3
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()。它出现在第一个示例中,但没有出现在其他两个示例中。

于 2012-05-03T07:31:01.707 回答
1

您是否正在尝试使用 Python 构建 JavaScript 代码?如果您的字符串包含双引号或任何其他 JavaScript 特殊字符会怎样?

虽然可以进行正则表达式替换,但我建议将数据作为 JSON 对象(使用 Python 的 json 库)传递给客户端并在客户端处理该数据。这将导致更清晰和更可支持的代码。

于 2012-05-03T07:32:04.373 回答