1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)

2023-06-12,,

1.3.5 使用 search()在一字符串中查找模式(搜索与匹配的对比)
  其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率。这也就是 search()派上用场的时候了。 search()的工作方式与 match()完全一致,不同之处在于 search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况。如果搜索到成功的匹配,就会返回一个匹配对象; 否则, 返回 None。我们将再次举例说明 match()和 search()之间的差别。 以匹配一个更长的字符串为例,这次使用字符串“foo”去匹配“seafood”:

import re#导入模块名
# search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况
re.search('foo', 'seafood').group() # 使用 search() 代替
# 搜索成功,但是匹配失败
# m = re.search('foo', 'seafood')# 使用 search() 代替
# if m is not None:
# m.group()

  可以看到,此处匹配失败。 match()试图从字符串的起始部分开始匹配模式;也就是说, 模式中的“f”将匹配到字符串的首字母“s”上,这样的匹配肯定是失败的。然而,字符串 “foo”确实出现在“seafood”之中(某个位置),所以,我们该如何让 Python 得出肯定的结果呢?答案是使用 search()函数,而不是尝试匹配。 search()函数不但会搜索模式在字符串中第一次出现的位置,而且严格地对字符串从左到右搜索。

1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)的相关教程结束。

《1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比).doc》

下载本文的Word格式文档,以方便收藏与打印。