博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
py_正则表达式
阅读量:5291 次
发布时间:2019-06-14

本文共 1804 字,大约阅读时间需要 6 分钟。

#re模块: python中的正则表达式模块

ipmort re

#正则表达式:

 

元字符:

  1 .    匹配除换行符以外的任意字符

  2 \w    匹配字母或者数字或者下划线

  3 \s     匹配任意空白字符

  4 \d     匹配数字
  5 \n     匹配换行符
  6 \t    匹配制表符tab
  7 \b    匹配一个单词的结尾
  8 ^    匹配字符串的开始
  9 $    匹配字符串的结尾
  10 \W   匹配非字母或下划线或数字
  11 \D   匹配非数字
  12 \S   匹配非空白符
  13 |    匹配|前或者后的内容
  14 ()    匹配括号内的表达式,也表示一个组

 

re模块正则表达式方法:

 

  findall()方法:

    此方法是在整个字符串中匹配指定字符或者字符串,并且将所有满足条件的结果返回到一个列表中

    print(re.findall('a','abababab'))

  search()方法:

    此方法是在整个字符串中查找满足匹配条件的字符或者字符串,一旦找到一个就不再继续查找,并返回包含查找值的对象,可以用.group()方法进行查看

     ret = re.search('a','abac')

     print(ret.group())

  match()方法:

    此方法是用来从开头位置查找是否满足匹配条件,如果没有就会返回None,如果有,则会返回一个包含查找值的对象,可以用group()方法进行查看

    ret = re.match('a','abac')

    print(ret.group())  #a

 

  split()方法:

    

     此方法用来对一个字符串进行切分  

      ret = re.split('[ab]', 'abcd')  # 先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割

      print(ret)  # ['', '', 'cd']

 

    sub()以及subn()方法:

 

      ret = re.sub('\d', '*', 'a1b2c3')#将数字替换成'*',默认替换所有的数字

      print(ret) #a*b*c*
      ret = re.sub('\d', '*', 'a1b2c3', 1)#将数字替换成'*',参数1表示只替换1个
      print(ret) #a*b2c3
      ret = re.subn('\d', '*', 'a1b2c3')#将数字替换成'*',返回一个元祖(替换后的字符串,替换的次数)

      print(ret) #('a*b*c*', 3)

    

    compile()方法:

      此方法是先把正则表达式编译好,以方便多次使用

 

       obj = re.compile('\d{3}')  #将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字

       ret = obj.search('abc123eeee') #正则表达式对象调用search,参数为待匹配的字符串
       print(ret.group())  #结果 : 123

    finditer()方法:

      此方法与findall类似,只不过返回的不是一个列表,而是一个生产器,可以用next(iter).group()来查看里面的值

 

      ret = re.finditer('\d', 'ds3sy4784a')   #finditer返回一个存放匹配结果的迭代器

      print(ret)  # <callable_iterator object at 0x10195f940>
      print(next(ret).group())  #查看第一个结果
      print(next(ret).group())  #查看第二个结果
      print([i.group() for i in ret])  #查看剩余的左右结果

 

    

  

 

转载于:https://www.cnblogs.com/Py-Raid/p/9776072.html

你可能感兴趣的文章
Logstash 基础入门
查看>>
安装VS2012以后打开office 2007 的任何程序都跳出VS2012配置界面的解决方案
查看>>
.NET Core 时代已经到了,你准备好了吗
查看>>
什么叫PV,UV,PR值
查看>>
Linux文件管理下
查看>>
SQL Server 事务隔离级别详解
查看>>
第9章 前端开发 口述题
查看>>
创建触发器
查看>>
django
查看>>
jquey常用代码
查看>>
Mac Mysql [ERR] 2006 - MySQL server has gone away
查看>>
OSG 3.40编译,osgQt编译失败解决方案
查看>>
[转载]web安全之token
查看>>
CNN的理解
查看>>
数据手册中Accuracy和Precision的准确定义
查看>>
2.5 定义FTP工具的各种方法
查看>>
linux命令
查看>>
PHP中XPATH 实现xml及html文件快速解析(附xml做小型数据库实现六级单词快速查询实例)...
查看>>
2017-2018-2 20155309 南皓芯 Exp9 Web安全基础
查看>>
Leetcode Reverse Words in a String
查看>>