Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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';s";重新编译“;做_Python_Regex - Fatal编程技术网

python';s";重新编译“;做

python';s";重新编译“;做,python,regex,Python,Regex,当您为原始字符串和通过re.compile传递的字符串运行re.match时,后者有什么不同?通过re.compile传递的字符串发生了什么情况?它将正则表达式编译为正则表达式对象。查看文档以获取更多信息。首先查看文档……这个问题类似于这个问题:即使您被降了分数(-1比155),我认为这是一个好问题。Stackoverflow python社区有一个习惯,就是“先投票后理解问题”。match(pattern,searchstring)从模式内部构建PatternObject,然后将searchs

当您为原始字符串和通过re.compile传递的字符串运行re.match时,后者有什么不同?通过re.compile传递的字符串发生了什么情况?

它将正则表达式编译为正则表达式对象。查看文档以获取更多信息。

首先查看文档……这个问题类似于这个问题:即使您被降了分数(-1比155),我认为这是一个好问题。Stackoverflow python社区有一个习惯,就是“先投票后理解问题”。match(pattern,searchstring)从模式内部构建PatternObject,然后将searchstring应用于PatternObject。如果要在多个SearchString上运行相同的模式,则应将该模式编译为PatternObject以消除冗余工作。一句话:您的代码将执行相同的操作,但会运行得更快。@Icardor——虽然您在技术上是正确的,
re
实际上在dict中缓存了一堆正则表达式——因此,如果您不显式编译它们,
re
将在第一次调用时编译正则表达式,并在后续调用时使用编译后的版本以提高效率。只有当程序使用超过
re.\u MAXCACHE
正则表达式导致缓存被清除和重建时,才会看到显著的加速。我认为编译正则表达式是为了代码清晰,而不是为了速度。谢谢你的澄清。我的re._MAXCACHE=100,我使用了大约1000个模式,所以re的内部缓存没有帮助。离题:我总是在选择编译模式对象的变量名时遇到问题。有什么建议吗?