前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 正则表达

Python 正则表达

原创
作者头像
江小白
修改2019-06-25 15:09:12
8090
修改2019-06-25 15:09:12
举报
文章被收录于专栏:左瞅瞅,右瞅瞅

Python 使用re 模块提供了正则表达式处理的能力

代码语言:javascript
复制
re.M                         多行模式
re.MULTILNE
re.S                         单行模式
re.DOTALL      
re.I                         忽略大小写
re.IGNORECASE
re.X                         忽略表示式中的空白字符
re.VERBOSE
使用 | 位 或 / 运算开启多种选项

方法

编译

re.compile(patten,flags=0)

设定flags, 编译模式,返回正则表达式对象regex。

pattern 就是正则表达式字符串,flags是选项。正则表达需要被编译,为了提高提高效率,这些编译后的结果被保存,下次使用同样的pattern 的时候,就不需要再次编译。

re的其他方法为了提高效率都调用了编译方法,就是为了提速。

单次匹配

代码语言:javascript
复制
re.march(pattern,string,flags=0)
regex.match(string[,pos[,endpos]])
match匹配从字符串开头匹配,regex对象match 方法可以重设定开始位置和结束位置。返回match对象
代码语言:javascript
复制
re.search(pattern,string,flags=0)
regex.search(string[,pos[,endpod]])
从头搜索直到第一个匹配,regex对象search方法可以重设定开始位置和结束位置,返回match对象
代码语言:javascript
复制
re.fullmatch(pattern,string,flags=0)
regex.fullmatch(string[,pos[,endpos]])
整个字符串和正则表达式匹配

全文搜索

代码语言:javascript
复制
re.findall(pattern,string,flags=0)
regex.findall(string[,pos[,endpos]])
对整个字符串,从左到右匹配,返回所有匹配的列表
代码语言:javascript
复制
re.finditer(pattern,string,flags=0)
redex.finditer(string[,pos[,endpos]])
对整个字符串,从左到右匹配,返回所有匹配项,返回迭代器。注意每次迭代返回的是match对象

匹配替换

代码语言:javascript
复制
re.sub(pattern,replacement,string,count=0,flags=0)
regex.sub(reglacement,string,count=0)
使用pattern对字符串string 进行匹配,对匹配项使用repl替换。
replacement可以是string, bytes, function.
代码语言:javascript
复制
re.subn(pattern,replacement,string,count=0,flags=0)
regex.subn(replacement,string,count=0)
同sub返回一个元组(new_string,number_of_subs_made)

字符串分割

代码语言:javascript
复制
字符串的分割函数,太难用,不能指定多个字符进行分割。
re.split(pattern,string,maxsplit=0,flags=0)
re.split分隔字符串

分组

代码语言:javascript
复制
使用小括号的pattern 捕获的数据被放到了组group 中。
match ,search 函数可以返回match 对象;findall 返回字符串列表;finditer 返回一个个match 对象

如果pattern 中使用哦分组,如果有匹配的结果,会在match 对象中
1、使用group(N)方式返回对应分组,1-N 是对应的分组,0返回整个匹配的字符串
2、如果使用了命名分组,可以使用group('name') 的方式取分组
3、也可以使用groups()返回多有分组
4、使用groupdict()返回所有命名的分组

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法
    • 编译
      • 单次匹配
        • 全文搜索
          • 匹配替换
            • 字符串分割
              • 分组
              相关产品与服务
              Elasticsearch Service
              腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档