gpt4 book ai didi

Python 正则表达式 - 了解匹配和搜索之间的区别

转载 作者:行者123 更新时间:2023-11-28 20:51:06 25 4
gpt4 key购买 nike

据我所知,

match:给定字符串 str 和模式 pat,match 检查 str 是否与 str 开头的模式相匹配。

search:给定字符串 str 和模式 pat,search 检查 str 是否与 str 的每个索引中的模式相匹配。

如果是这样,在匹配的正则表达式的开头使用 '^' 是否有意义?

据我了解,由于 match 已经从一开始就进行了检查,所以没有。我可能错了;我的错误在哪里?

最佳答案

我相信没有用。以下是复制/粘贴自:http://docs.python.org/library/re.html#search-vs-match

Python 提供了两种基于正则表达式的不同原始操作:re.match() 仅在字符串的开头检查匹配项,而 re.search() 检查字符串中任何位置的匹配项(这是 Perl 默认执行的操作)。

例如:

>>> re.match("c", "abcdef")  # No match
>>> re.search("c", "abcdef") # Match
<_sre.SRE_Match object at ...>

'^'开头的正则表达式可以和search()一起使用来限制匹配字符串的开头:

>>> re.match("c", "abcdef")  # No match
>>> re.search("^c", "abcdef") # No match
>>> re.search("^a", "abcdef") # Match
<_sre.SRE_Match object at ...>

但是请注意,在 MULTILINE 模式下,match() 仅匹配字符串的开头,而使用 search() 和以 ' 开头的正则表达式^' 将匹配每行的开头。

>>> re.match('X', 'A\nB\nX', re.MULTILINE)  # No match
>>> re.search('^X', 'A\nB\nX', re.MULTILINE) # Match
<_sre.SRE_Match object at ...>

关于Python 正则表达式 - 了解匹配和搜索之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10766318/

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