Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python regexp replace';a_1_1';至';p、 获取(“a”u 1”,0)和x27;_Python_Regex - Fatal编程技术网

Python regexp replace';a_1_1';至';p、 获取(“a”u 1”,0)和x27;

Python regexp replace';a_1_1';至';p、 获取(“a”u 1”,0)和x27;,python,regex,Python,Regex,我在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)' 你能帮我学习正则表达式吗 p.S.p是python中的简单dict In [7]: s = 'a_1_2+c_2

我在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)'
你能帮我学习正则表达式吗

p.S.p是python中的简单dict

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


尚不清楚是什么规则管理
p.get()
的第二个参数。它出现在第一个示例中,但在其他两个示例中没有。

您是否正在尝试使用Python构建JavaScript代码?如果字符串包含双引号或任何其他JavaScript特殊字符,会发生什么情况


虽然可以使用正则表达式替换,但我建议将数据作为JSON对象传递给客户端(使用Python的JSON库),并在客户端处理该数据。这将产生更干净、更受支持的代码。

您是否尝试使用Python构建JavaScript代码?如果字符串包含双引号或任何其他JavaScript特殊字符,会发生什么情况



虽然可以使用正则表达式替换,但我建议将数据作为JSON对象传递给客户端(使用Python的JSON库),并在客户端处理该数据。这将产生更干净、更受支持的代码。

您需要的是解析器,而不是正则表达式。第一行的零参数(而不是其他两行)有什么关系?ThiefMaster:我想我必须先搜索此类字符串,然后再替换它们。您想用p.get()替换每个变量吗?变量的命名规则是什么?它们总是以字母开头?你想要一个解析器,而不是正则表达式。第一行的零参数是什么,而不是另外两行呢?对ThiefMaster说:我想我必须先搜索这类字符串,然后再替换它们。你想用p.get()替换每个变量吗?变量的命名规则是什么?它们总是以字母开头?正则表达式可以工作,但如果我是代码审阅者,此代码将无法通过。:-)(见我的帖子)谢谢,这就是我要找的@马克西姆科兹连科:我认为你的反对应该针对问题,而不是答案。此外,我甚至不知道关于双引号等的论点如何适用于
\w+\ud+\ud+
。正则表达式可以工作,但如果我是代码审阅者,此代码将无法通过。:-)(见我的帖子)谢谢,这就是我要找的@马克西姆科兹连科:我认为你的反对应该针对问题,而不是答案。此外,我甚至不知道关于双引号等的论点如何适用于
\w+\ud+\ud+
。p在python中是简单的dict。这个字符串用于python eval。同样的事情也适用于python代码。只需确保仔细处理传递给eval方法的清理参数。p是python中的简单dict。这个字符串用于python eval。同样的事情也适用于python代码。只需确保小心传递给eval方法的清理参数。