python正则表达式

yuluodisuihe 2018-05-07 原文

python正则表达式

一、元字符

  .  匹配任意字符(不包括换行符)
  ^  匹配开始位置,多行模式下匹配每一行开始
  $  匹配结果位置,多行模式下匹配每一行结尾
  *  匹配前一个元字符0到多次
  +  匹配前一个元字符1到多次
  ? 匹配前一个元字符0到1次
  {m,n} 匹配前一个元字符m到n此
  |  或,匹配|左右表达式任意一个
  [] 字符集,对应位置可以是字符集中的任意一个
  () 分组,从左到右每遇到一个编号+1
  \d 匹配数字
  \D 匹配非数字
  \w 匹配字母和数字
  \W 匹配非英文字母和数字
  \s 匹配空白字符
 
  特殊分组:原本分组只是从左到右编号+1,特殊分组可对分组添加别名
  (?P<name>) 未分组添加别名name
  (?P=name)  在使用分组别名对分组进行匹配

 

二、模式

  1、忽略大小写  I

1 a = 'Hello Python'
2 regex = re.compile('hello world',re.I)
3 regex.match(a) 

  2、多行模式  M

1 a = ''' sfasdf
2 ghdfg
3 sgsdfg'''
4 regex = re.compile('^ s',re.M)
5 regex.match(a).group()

三、re内置函数

   1、compile(pattern,flags=0)    

      pattern:用来匹配的字符串
      flags:定义匹配使用的模式。如re.I忽略大小写
      作用:编译正则表达式模式,返回一个对象模式(常用的表达式使用其编译后可提高效率)。

   2、match(parttern,string,flags=0)

     string:被匹配的字符串
     作用:从被匹配的字符串左边第一位开始匹配,匹配成功返回match object对象,匹配失败则返回None
     注:该方法并非完全匹配,要想实现完全匹配的效果可在用来匹配的字符串后加’$’   

1 import re
2 a = 'Hello world'
3 re.match(r'hello',a,re.I)      #Hello

   3、search(parttern,string,flags=0)

     作用:在string进行查找相匹配的字符串,匹配成功返回match object对象,匹配失败返回None
     注:1.该函数要实现match函数的功能可在匹配字符串前加’^’
            2.该函数要实现完全匹配可在字符串前后分别加’^’,’$’

1 import re
2 a = 'hello world'
3 re.search(r'^ello world$',a)

     注:对match object提供的方法(得到匹配成功返回的数据)
        1、group() :返回被匹配的字符串,可通过输入组号输出对应的内容
        2、groups():以元组形式返回匹配到的所有内容
        2、start() :返回匹配开始的位置
        3、end()   :返回匹配结束的位置
        4、span()  :返回一个元组(匹配开始、结束的位置)

 

   4、findall(pattern,string,flags=0)

     作用:遍历匹配,以列表的形式返回所有能够被匹配的字符串

1 import re
2 a = 'python2 Python3'
3 regex = re.compile(r'\d')
4 regex.findall(a)                 #['2','3']  

   5、finditer(parttern,string,flags=0)

     作用:作用与findall相同,但返回的为迭代器
       

   6、split(pattern,string[,maxsplit])

     maxsplit:最大分割数,不指定将全部分割
     作用:在string中匹配与pattern相同的字符,对string进行分割
    

   7、sub(pattern,repl,string,count)

     repl:需要替换的字符串
     count:替换个数,默认为0,即每个都替换
     作用:使用repl替换在string中匹配到pattern的字符,并返回被替换后的字符串

1 import re
2 a = 'hello world'
3 re.sub(r'w\D+','python',a)     #hello python

   8.subn(pattern,repl,string,count=0,flags=0)

     作用:作用与sub类似,会返回一个元组,即替换后的字符串及替换的次数。
    

发表于 2018-05-07 15:33 雨落滴碎荷 阅读() 评论() 编辑 收藏

 

版权声明:本文为yuluodisuihe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yuluodisuihe/p/8650057.html

python正则表达式的更多相关文章

  1. Django的form组件——ModelForm实战

    模型: from django.db import models class Book(models.Mode […]...

  2. Python 工匠:善用变量来改善代码质量

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | […]...

  3. Spark TempView和GlobalTempView的区别

    Spark TempView和GlobalTempView的区别 TempView和GlobalTempVie […]...

  4. 【Python】秀人集-写真集-爬虫-2.0

    好久不见呀,各位。[/坏笑]自从上次发布文章已经过去了许久,之前承诺过的2.0版本我就现在嘛出来吧。(毕竟,评论区都已经开始催了,拖不了了...)emm...具体的网页链接我就不写在正文了,我会放在代码区的注释部分。闲话不多说,下面就...

  5. Python中的可迭代对象/迭代器/For循环工作机制/生成器

    本文分成6个部分: 1.iterable iterator区别 2.iterable的工作机制 3.itera […]...

  6. 最近在练习爬虫,分享一些简单入门的知识

    我用的PYCharm3.5.4,安装了requests   使用requests模块发送简单的get请求、获取 […]...

  7. Python 运行效率为何低

    当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间;另一个 […]...

  8. 使用 Vim 搭建 Python 开发环境

    使用 Vim 搭建 Python 的开发环境,包括自动补全、语法检查、快速运行、项目管理等等。 原文链接: h […]...

随机推荐

  1. 小觅相机和ZED相机参数对比

    名称 小觅120 小觅50 ZED 帧率 最高60FPS 最高60FPS 最高100FPS 分辨率 2560& […]...

  2. Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档

    随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来 […]...

  3. 前端开发利器webStorm

    这里推荐一个前端开发工具webStorm。用了大概快半年了,发现所有其他工具无出其右的。目前最新版本已经到4. […]...

  4. Oracle数据库与MySQL的不同点

    Oracle笔记 一、   Oracle的启动和登录:    1、启动:通过启动Oracle的服务启动。    […]...

  5. 美团大脑:知识图谱的建模方法及其应用 – 美团技术团队

    美团大脑:知识图谱的建模方法及其应用 近日,美团 AI 平台部 NLP 中心负责人、大众点评搜索智能中心负责人 […]...

  6. KMP算法以及优化(代码分析以及求解next数组和nextval数组)

    KMP算法以及优化(代码分析以及求解next数组和nextval数组) 来了,数据结构及算法的内容来了,这才是 […]...

  7. 一次Spring Transactional嵌套事务使用不同的rollbackFor的分析

    一次Spring Transactional嵌套事务使用不同的rollbackFor的分析   起因:     […]...

  8. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Ja […]...

展开目录

目录导航