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

正则表达式

时间:2020-07-21 10:03:46      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:ali   来源   默认   one   flag   rom   成功   单词   unicode   

一、正则表达式规则

1.单字符匹配规则

  • 字符  .                  匹配任意1个字符(除了\n)
  • 字符 []     匹配[]中列举的字符
  • 字符 \d                    匹配数字,也就是0-9
  • 字符 \D             匹配非数字,也就是匹配不是数字的字符
  • 字符 \s                    匹配空白符,也就是空格\tab
  • 字符 \S                   匹配非空白符,\s取反
  • 字符 \w                  匹配单词字符,a-z,A-Z,0-9,_
  • 字符 \W                 匹配非单词字符,\w取反

2.表示数量的规则

  • 字符 *                    匹配前一个字符出现0次或者无限次,可有可无,可多可少
  • 字符 +                    匹配前一个字符出现1次或者无线次,直到出现一次
  • 字符 ?                  匹配前一个字符1次或者0次,要么有1次,要么没有
  • 字符 {m}               匹配前一个字符出现m次
  • 字符 {m,}              匹配前一个字符至少出现m次
  • 字符 {m,n}            匹配前一个字符出现m到n次

 

3.表示边界

  • 字符 ^                    匹配字符串开头
  • 字符 $                    匹配字符串结尾
  • 字符 \b                   匹配一个单词的边界
  • 字符 \B                   匹配非单词边界
4.匹配分组
  • 字符 |                     匹配左右任意一个表达式
  • 字符 (ab)                将括号中字符作为一个分组
  • 字符 \num              引用分组num匹配到的字符串
  • 字符 (?P<name>)  分组起别名
  • 字符 (?P=name)    引用别名为name分组匹配到的字符串
5.可选标志
  • 字符 re.I             忽略大小写 
  • 字符 re.L            表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  • 字符 re.M           多行模式
  • 字符 re.S            即为‘ . ‘并且包括换行符在内的任意字符(‘ . ‘不包括换行符)
  • 字符 re.U            表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
  • 字符 re.X            为了增加可读性,忽略空格和‘ # ‘后面的注释
二、正则表达式的用法
1.字符串搜索
  %主要方法
  • match方法
    描述:从左往右依次匹配,不满足则退出并返回None,匹配成功则返回一个匹配对象
    格式:re.match(pattern,str,flags=0)
  • search方法
    描述:全局搜索,只要有就返回,不再继续往下寻找
    格式:re.search(pattern,str,flags=0)
  • findall方法
    描述:获取所有匹配的查找
    格式:re.findall(pattern,str)
  %区别
   match只匹配字符串的开始,如果字符串开始不符合正则表达式则匹配失败,返回None;
   search匹配整个字符串,直到找到一个匹配。
2.字符串替换
  • sub方法
    描述:将匹配到的数据进行替换
    格式:re.sub(pattern,replace,str,count=0,flags=0)
    参数:count替换的最大次数,默认0代表替换所有匹配;flags编译时用的匹配模式
    特征:replace可以是字符串或者一个函数
               #当replace为字符串时直接对查找到的字符串进行替换
       #当replace为函数时,则将查找到的字符串作为参数传入函数中,并将函数的返回的字符串替换到原字符串中
3.字符串切割
  • split()方法
    描述:按照能够匹配的子串将字符串分割后返回列表
  • 格式:re.split(pattern,str[,maxsplit,flags=0])
  • 参数:maxsplit分隔次数;flags标志位,用于控制正则表达式的匹配方式(修饰符-可选标志)
4.字符串获取
  • group()方法
    内容:匹配整个表达式的字符串,group()可以一次输入多个组号,在这种情况下它将返回一个包含那些组对应值的元组
  • groups()方法
    内容:返回一个包含所有小组字符串的元组,从1到所含的小组号
三、其他注意点
1.正则表达式的贪婪与非贪婪模式
  • 含义:贪婪模式是指前面字符串尽可能多的匹配
  • 转换:用 ? 将贪婪模式转换为非贪婪模式  
2.原始字符串raw
  • 来源:转义字符 \ 会造成在字符串匹配时需要转义为 \\ 
  • 解决:在字符串前面加上 r ,就不需要考虑字符串转义的问题
3.原生字符串
  • 内容:python中""" """可以定义一个原生字符串
  • 含义:不管该字符串中有双引号单引号都会保留,不需要转义等特殊处理
 
 
 

正则表达式

标签:ali   来源   默认   one   flag   rom   成功   单词   unicode   

原文地址:https://www.cnblogs.com/jishaobo/p/13332652.html

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