Help on function findall in module re:
findall(pattern, string, flags=0)
Return a list of all non-overlapping matches in the string.
If one or more groups are present in the pattern, return a
list of groups; this will be a list of tuples if the pattern
has more than one group.
Empty matches are included in the result.
见重点:
您有一个组,因此返回它而不是整个匹配项,但在任何情况下都不匹配。使用
^{pr2}$(?:e-\d+)
使其不捕获:使用非捕获组。匹配是成功的,但输出的是可选组的内容,这些组的内容与实际上不匹配。在
当您的输入包含
e-6
时,请查看输出:对于非捕获组(
^{pr2}$(?:...)
):下面是一些简单的示例来演示捕获组是如何工作的以及它们如何影响
findall
的输出。首先,不分组:在这里,字符串“ab”匹配正则表达式,所以我们打印正则表达式匹配的所有内容。在
这一次,我们将
[bc]
放在一个捕获组中,因此即使整个字符串仍然由正则表达式匹配,findall
在其输出中只包含捕获组中的部分。在现在,通过将捕获组转换为非捕获组,
findall
再次在其输出中使用整个regex的匹配。在在最后两种情况下,正则表达式作为一个整体匹配,因此返回值是一个非空列表。在第一个文件中,捕获组本身与任何文本都不匹配,因此空字符串是输出的一部分。在第二种情况下,我们没有捕获组,因此整个正则表达式的匹配将用于输出。在
相关问题 更多 >
编程相关推荐