程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python进阶之路 高级编程 正则表达式-使用search方法在一个字符串中查找模式、匹配多个字符串

发布于2019-08-07 14:25     阅读(616)     评论(0)     点赞(3)     收藏(4)


正则表达式 使用search方法在一个字符串中查找模式

搜索是正则表达式的另一类常用的应用场景。也就是从一段文本中找到一个或多个与文本模式匹配的字符串。先从搜索一个匹配字符串开始。

在一个字符串中搜索满足文本模式的字符串需要使用search方法,该方法的参数与match方法类似。

m = re.search('abc','xabcy') # abc是文本模式字符串,xabcy是待搜索的字符串
print(m.group()) # 搜索成功,输出结果:abc
  • 1
  • 2

[例 11.2] 本例通过使用match方法和search方法对文本模式进行匹配和搜索,并对这两个方法做一个对比。

import re
# 进行文本模式匹配,匹配失败,match方法返回None
m = re.match('python','I love python.')
if m is not None:
    print(m.group())    # 输出结果:None
print(m)

# 进行文本模式搜索,搜索成功
m = re.search('python','I love python.')
if m is not None:
    print(m.group())    # 输出结果:python
print(m)    # 输出结果:<re.Match object; span=(7, 13), match='python'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

输出结果:

None
python
<re.Match object; span=(7, 13), match='python'>
  • 1
  • 2
  • 3

从Match对象(m变量)的输出信息可以看出,span的值是(7,13),表明满足文本模式的字符串的起始位置索引是7,结束位置的下一个字符的索引是13.从这个值可以直接截取满足条件的字符串。

正则表达式-匹配多个字符串

在前面的例子中,只是通过search方法搜索一个字符串,要想搜索多个字符串,如搜索bike、car和truck,最简单的方法是在文本模式字符串中使用择一匹配符号(|)。择一匹配符号和逻辑或类似,只要满足任何一个,就算匹配成功。

s = 'bike|car|truck' # 定义使用择一匹配符号的文本模式字符串
m = re.match(s,'bike') # bike满足要求,匹配成功
print(m.group()) # 输出结果:bike
m = re.match(s,'truck') # truck满足要求,匹配成功
print(m.group()) # 输出结果:truck
  • 1
  • 2
  • 3
  • 4
  • 5

从上面的代码可以看出,待匹配的字符串只要是bike、car和truck中的任何一个,就会匹配成功。

[例 11.3] 本例使用了带择一匹配符号的文本模式字符串,并通过match方法和search方法分别匹配和搜索指定的字符串。

import re
s = 'Bill|Mike|John'    # 指定使用择一匹配符号的文本模式字符串
m = re.match(s,'Bill')  # 匹配成功
if m is not None:
    print(m.group())    # 输出结果:Bill

m = re.search(s,'Where is Mike?')   # 搜索成功
if m is not None:
    print(m.group())    # 输出结果:Mike
print(m)    # 输出结果:<re.Match object; span=(9, 13), match='Mike'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出结果:

Bill
Mike
<re.Match object; span=(9, 13), match='Mike'>
  • 1
  • 2
  • 3


所属网站分类: 技术文章 > 博客

作者:磨子舒

链接:https://www.pythonheidong.com/blog/article/11331/f24b06128614a2be557b/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)