前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础-正则使用

python基础-正则使用

作者头像
dogfei
发布2020-07-31 13:35:02
2960
发布2020-07-31 13:35:02
举报
文章被收录于专栏:devops探索devops探索

正则匹配

[table id=1 /]

简单介绍

re.match

re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None

示例

代码语言:javascript
复制
import re
content = 'Hello asdasd 123124 aaaaa python'
result = re.match('^Hello.*\d+.*python$',content)
print(result)

结果

代码语言:javascript
复制
<re.Match object; span=(0, 32), match='Hello asdasd 123124 aaaaa python'>

泛匹配

代码语言:javascript
复制
import re
content = 'Hello asdasd 123124 aaaaa python'
result = re.match('^Hello.*(\d+).*python$',content)
print(result.group(1))  #result.group(n)为匹配的目标

贪婪匹配

简单理解就是能匹配多少就匹配多少,就像上例中的匹配方式,匹配结果为4

非贪婪匹配

非贪婪匹配很常用,往往能得到我想要的结果,写法如下

仔细看没啥区别,只是在目标匹配的内容外加了一个?,这样即表示非贪婪匹配

当匹配的内容里出现换行时该如何匹配呢?

加一个参数,re.S即可

如果使用正则匹配,尽量使用泛匹配,非贪婪模式,有换行则使用re.S

re.search

除了rs.match方法,还有re.search,使用re.search时便非常方便了,因为它是扫描整个字符串并返回第一个成功的匹配,比如我们查找一些关键字,该关键字并没有在行首,可能在中间位置,此时在使用re.match时便匹配不到了。

可以看到使用re.match是匹配不到的,换re.search试试

所以:能尽量使用re.search就不要使用re.match

re.findall

搜索字符串,以列表形式返回全部能匹配的子串

先简单介绍这么多

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正则匹配
  • 简单介绍
    • re.match
      • 泛匹配
        • 贪婪匹配
          • 非贪婪匹配
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档