gpt4 book ai didi

python - 为什么 re.search(r'(ab* )',' aaAaABBbbb',re.I) 在 python 中给出结果 'a' 而不是 'ABBbbb' 尽管使用了 're.I'?

转载 作者:太空狗 更新时间:2023-10-30 00:49:04 26 4
gpt4 key购买 nike

在 python 中,re.search() 检查字符串中任何位置的匹配项(这是 Perl 默认执行的操作)。

那么,为什么我们不像在 Ex(2) 中那样在 Ex(1) 中得到 'ABBbbb' 的输出,并且Ex(3) 下面。

例(1)

>>> s=re.search(r'(ab*)','aaAaABBbbb',re.I)
>>> print s.group()
a

例(2)

>>> s=re.search(r'(ab.*)','aaAaABBbbb',re.I)
>>> print s.group()
ABBbbb

例(3)

>>> s=re.search(r'(ab+)','aaAaABBbbb',re.I)
>>> print s.group()
ABBbbb

最佳答案

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

示例 2 搜索 ab 后跟尽可能多的字符串。示例 3 搜索后跟至少一个 ba。不同之处在于,其中每一个都至少需要一个 b,而示例 1 则不需要。

关于python - 为什么 re.search(r'(ab* )',' aaAaABBbbb',re.I) 在 python 中给出结果 'a' 而不是 'ABBbbb' 尽管使用了 're.I'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com