频道栏目
首页 > 资讯 > Python > 正文

Python正则表达式学习之match和search的实例

18-07-27        来源:[db:作者]  
收藏   我要投稿

怎么使用,怎么返回什么

import re

if __name__ == '__main__':
 bt = 'bat|bet|bit'
 m = re.match(bt, 'bet')
 if m is not None:
  result = m.group()
  print(result)

 m = re.match(bt, 'batbet')
 if m is not None:
  result = m.group()
  print(result)

 m = re.match(bt, 'ggbet')
 if m is not None:
  result = m.group()
  print(result)
# 控制台打印出来的结果为:
bet
bat

从上面的信息来看,python的 re 模块中的 match方法这种用法只能匹配出字符串开始是否包含指定的部分,而且只读取返回的结果只有一条数据,不知道大家理解了没有,没有理解可以将上面的代码直接复制运行,当然这句话也不完全对,上面代码如果换成这样的话就说的不对了

 bt = '(bat).(bet).(bit)'
 m = re.match(bt, 'batmbetubit')
 if m is not None:
  result = m.group(3)
  print(result)

接下来一起看下 search

 bt = 'bit'
 m = re.search(bt, 'hfgkfkjbit')
 if m is not None:
  result = m.group()
  print(result)

re中的search这个方法的就可以从一整句中查询是否包含需要的部分,而不仅仅的是查找开头有没有

 a = "123abc456"
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))  # 123abc456,返回整体
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1) ) # 123
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2)) # abc
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))  # 456
 print("-"*50)
 m = "(bet)...(bat)"
 result = re.search(m, "betljhbat")
 print(result.group(0))  # 返回整体
 print(result.group(1))  # 返回bet
 print(result.group(2))  # 返回bat

总的来说 match和search的功能绝大部分是相同的,不同的部分在于search是在整体搜索,而match是从开始搜索,其他部分基本相同

上面的例子要注意理解group这个,group是分组的意思,正则里面的小括号表示获取当前的值并返回成元组通过group来获取,一般第一个元素是整体元素也就是整个字符串

相关TAG标签
上一篇:MAVEN常用插件配置方式
下一篇:翻硬币问题蓝桥杯真题解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站