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. python 开发微信 自定义菜单

    1.再次重复说明,下面代码只是为了简单说明接口获取方式。实际中并不推荐,尤其是业务繁重的公众号,更需要中控服务 […]...

  2. 想知道孩子学习成果?我把儿子生词做了个表,随时抽查让他随机背单词!

    几行代码,让儿子流下幸福的泪水! 是这样的,儿子刚开始学英语,想知道他的学习成果和进度怎么样?感觉直接拿书本抽 […]...

  3. python之装饰器详解

    python的装饰器使用是python语言一个非常重要的部分,装饰器是程序设计模式中装饰模式的具体化,pyth […]...

  4. Python 3 入门,看这篇就够了

    简介 Python 是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 由 Guid […]...

  5. Python 写了一个 PDF 转换器,以后再也不用花钱转了

    想必小伙伴都经历过,当你想要把PDF转为WORD时,自己打字赫赫甩在你眼前: 不充钱就想白嫖??想得美~ 然而 […]...

  6. 【阶段性成果2】Python编写购物车程序

    功能需求:1.启动程序后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后, […]...

  7. Linux 安装 python3.7 + virtualenvwrapper

    一、安装 Python3.7   1. 官网下载包,通过ftp上传到linux 服务器   2. 解压, 进入 […]...

  8. Python爬取腾讯新闻首页所有新闻及评论

    前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫。选用Python的Scrapy框架 […]...

随机推荐

  1. 二叉树、平衡二叉树、B-Tree、B+Tree 说明

    背景       一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、Full […]...

  2. GRPC调试工具

    `grpcurl` 和 `grpcui` 都是调试`grpc`的利器,前者用于命令行,类似`curl`工具;后 […]...

  3. [Linux CentOS6.2] CentOS 6.2 详细安装教程(全图解,转载)

         转载地址: http://www.cnblogs.com/pharen/archive/2012/0 […]...

  4. 谷歌云平台免费搭建个人博客

    目录 方法一:虚拟机服务 方法二:App Engine Step1:创建Cloud SQL Step2:创建W […]...

  5. (转载)施密特触发器工作原理

    施密特触发电路( 简称)是一种波形整形电路,当任何波形的信号进入电路时,输出在正、负饱和之间跳动,产生方波或脉 […]...

  6. sklearn.tree.DecisionTreeClassifier 详细说明

            sklearn.tree.DecisionTreeClassifier()函数用于构建决策树, […]...

  7. 【html5】html5中input 标签 type值为range时,修改其默认css

    demoDocumentinput[type="range"] {-...

  8. Qt update刷新之源码分析(一)

    Qt update刷新之源码分析(一) Qt update刷新之源码分析系列主要结合Qt源码对Qt的刷新机制进 […]...

展开目录

目录导航