码迷,mamicode.com
首页 > 其他好文 > 详细

re模块

时间:2017-04-04 23:30:34      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:搜索   port   lis   查找   通过   模式   dict   命名   多行   

正则表达式模块
常用的正则表达式符号:
  . 默认匹配除\n以外的任意一个字符,如果制定falg,DOTALL,则匹配任意字符,包括换行
  ‘^‘ 匹配字符串的开头
  ‘$‘ 匹配字符串的结尾
  ‘*‘ 匹配*号前的字符0次或者多次
  ‘+‘ 匹配前一个字符1次或多次
  ‘?‘ 匹配前一个字符1次或0次
  ‘{n}’ 匹配一个字符n次
  ‘{n,m}‘ 匹配前一个字符n到m次
  ‘|’ 匹配左边或右边的字符串
  ‘()’ 分组匹配
 
  ‘\A’ 只从字符串开头匹配
  ‘\Z‘ 匹配字符串的结尾,和$相同
  ‘\d‘ 只匹配数字0-9
  ‘\D‘ 匹配非数字
  ‘\w‘ 匹配字符数字[a-zA-Z0-9]
  ‘\W‘ 匹配非字符数字
  ‘s’ 匹配空白符、\t \n \r 等
 
  ‘(?P<name>regx)’ 分组匹配,并且把匹配到的字符串和name进行关联,通过groupdict()进行输出
 
简单用法:
  res = re.match(‘regx‘,‘str‘) -->利用regx对str进行从头开始匹配(注意,match默认就是从头开始匹配)
  res.group() -->列出匹配到的字符串
 
  res = re.search(‘regx‘,‘str‘) -->对字符串进行搜索,可以从任意位置开始,匹配到1个,就返回
  res = re.findall(‘\d‘,‘1a2b3c4d‘) -->查找所有匹配到的字符串,并用list进行存储
 
#分组命名匹配
  >>> import re
  >>> res3 = re.search(‘(?P<id>\d)‘,‘abc1d2e3f‘)
  >>> print(res3.groupdict())
  {‘id‘: ‘1‘}
  >>>
 
#利用正则对字符串进行分割,然后返回list
  >>> re.split(‘\d+‘,‘a1a2b3c4d‘)
  [‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘]
 
 
#替换
  >>> re.sub(‘\d‘,‘|‘,‘a1b2c3d4‘)
  ‘a|b|c|d|‘
 
 
其他匹配模式:
  1、忽略大小写: re.I
  2、多行模式: re.M
  3、点任意匹配模式:re.S,既加上re.S 点就可以匹配任意字符 包括换行符
 
 
 

re模块

标签:搜索   port   lis   查找   通过   模式   dict   命名   多行   

原文地址:http://www.cnblogs.com/dachenzi/p/6666550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!