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中的重新搜索(r';(ab*)';';aaaaabbbb';,re.I)会给出结果';a';而不是';abbbb';尽管';关于I';使用了什么?_Python_Regex - Fatal编程技术网

为什么python中的重新搜索(r';(ab*)';';aaaaabbbb';,re.I)会给出结果';a';而不是';abbbb';尽管';关于I';使用了什么?

为什么python中的重新搜索(r';(ab*)';';aaaaabbbb';,re.I)会给出结果';a';而不是';abbbb';尽管';关于I';使用了什么?,python,regex,Python,Regex,在python中,re.search() 那么,我们为什么不在Ex(1)中以'abbbb'的形式获得输出,正如我们在下面的Ex(2)和Ex(3)中发现的那样 行政长官(1) 行政长官(2) 行政长官(3) 示例1正在搜索a,后跟零个或多个b,忽略大小写。这正好匹配字符串的开头。正则表达式引擎将看到该匹配并使用它。它不会寻找任何其他匹配项 示例2搜索ab,然后搜索尽可能多的字符串。示例3正在搜索a,后面至少有一个b。不同之处在于,每个示例都需要至少一个b,而示例1不需要。: 检查字符串中的任何位置

在python中,
re.search()

那么,我们为什么不在Ex(1)中以'abbbb'的形式获得输出,正如我们在下面的Ex(2)Ex(3)中发现的那样

行政长官(1)

行政长官(2)

行政长官(3)


示例1正在搜索
a
,后跟零个或多个
b
,忽略大小写。这正好匹配字符串的开头。正则表达式引擎将看到该匹配并使用它。它不会寻找任何其他匹配项

示例2搜索
ab
,然后搜索尽可能多的字符串。示例3正在搜索
a
,后面至少有一个
b
。不同之处在于,每个示例都需要至少一个
b
,而示例1不需要。

检查字符串中的任何位置是否匹配(Perl默认情况下就是这样做的)


这将尝试匹配
a
(忽略大小写),后跟零个或多个
b
。它在第一个
a
中找到匹配项,因为它后面跟着零
b
,然后返回它

re.search(r'(ab.*)', 'aaAaABBbbb', re.I)
这一个将尝试匹配
a
,后跟
b
,然后匹配任何内容(
*
是贪婪的)。它匹配
abbbb
,因为它是匹配正则表达式的第一个序列

re.search(r'(ab+)', 'aaAaABBbbb', re.I)

最后,这将匹配
a
,后跟至少一个
b
(再次忽略大小写)。第一个匹配是
abbbb
,它被返回。

,因为
re.search
将只返回第一个匹配。试试
re.findall
你应该试试
re.search('(a*b*),'aaaaabbbb',re.I)
@AvinashRaj是对的
re.findall(r'(ab*),'aaaaabbbb',re.I)
将返回
['a','a','a','abbbb']
。在不到18秒的时间内进行表决?这是对某人的快速阅读:)18秒对于这个答案来说太多了。我花了10秒钟的时间投票。我很感激你澄清我的疑问的方式。:)谢谢@TomZych@AvinashRaj是的,我想。仅仅解释它,而不是四处寻找复制品,往往更容易。诚然,这样系统将充满大量的副本。
>>> s=re.search(r'(ab+)','aaAaABBbbb',re.I)
>>> print s.group()
ABBbbb
re.search(r'(ab*)', 'aaAaABBbbb', re.I)
re.search(r'(ab.*)', 'aaAaABBbbb', re.I)
re.search(r'(ab+)', 'aaAaABBbbb', re.I)