Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
Regex lambda函数如何将匹配项作为re.subn()表达式中的参数获取?_Regex_Python 3.x_Lambda - Fatal编程技术网

Regex lambda函数如何将匹配项作为re.subn()表达式中的参数获取?

Regex lambda函数如何将匹配项作为re.subn()表达式中的参数获取?,regex,python-3.x,lambda,Regex,Python 3.x,Lambda,我有一个re.sub,它搜索并递增一个数字。我在网上搜索这个解决方案。这个解决方案是可行的,但我不明白lambda函数是如何获得其参数的。据我所知,re.subn()返回结果字符串的元组和更改数。它不允许您访问匹配的字符串,但lambda正在以某种方式访问它 resultstring, nmatches = re.subn(regex, lambda m: '{}{}'.format(m.group(1), int(m.group(2)) + 1), originalstring) m是由re

我有一个re.sub,它搜索并递增一个数字。我在网上搜索这个解决方案。这个解决方案是可行的,但我不明白lambda函数是如何获得其参数的。据我所知,re.subn()返回结果字符串的元组和更改数。它不允许您访问匹配的字符串,但lambda正在以某种方式访问它

resultstring, nmatches = re.subn(regex, lambda m: '{}{}'.format(m.group(1), int(m.group(2)) + 1), originalstring)
m
是由
regex
和m.group(n)捕获的组匹配的字符串


请告诉我这里发生了什么。

“它不允许您访问匹配的字符串,但lambda正在以某种方式访问它。”因为编写
re.subn
的人编写了它,以便它将匹配的字符串传递给您传入的可调用对象。谢谢。这项技术叫什么来让我了解更多?也许你要找的是“回调”和“高阶函数”