首页 > 其他 > 详细

正则表达式 re模块

时间:2019-12-22 18:34:46      阅读:62      评论:0      收藏:0      [点我收藏+]

正则表达式

简介:

正则表达式:用来匹配特定规则的字符串。

正则表达式是处理字符串的强大工具,有特定的语法结构;实现字符串的检索、替换、匹配验证等。

元字符

模式描述
. 匹配除换行符之外的任意字符
^ 匹配开头
$ 匹配结尾
* 匹配任意多个(0个或多个)
+ 匹配1个或多个(至少一个)
匹配0个或1个;非贪婪模式
{n} 匹配n个前面前面的表达式
{m, n} 匹配m到n个前面表达式定义的片段,贪婪模式
| 匹配满足的两个表达式 如 re.findall(r‘ab|dc‘, ‘abc-adc-bcd‘)
\ 转义元字符;匹配正则中使用的特殊字符
() 匹配括号内的表达式,也表示一个组(分组)
[] 列举出他的字符
.* 通用匹配,尽可能多的匹配
.*? 通用匹配,尽可能少的匹配;因此.*?匹配不到结尾的内容

预定义字符组

模式描述
\w 匹配字母、数字及下划线
\d 匹配任意数字,相当于[0-9]
\s 匹配任意空白字符,相当于[\t\n\r\f]
\W 取反,匹配非字母、数字、下划线
\D 取反,匹配任意非数字的字符
\S 取反,匹配任意非空字符

修饰符

修饰符描述
re.S 使 . 匹配包括换行符在内的所有字符。(常用,如:re.findall(r"\w+", text, re.S))第三个参数)
re.I 使匹配对大小写不敏感,也就是不区分大小写

 

方法(api)

match()

从字符串的开头位置匹配正则表达式,如果匹配,就返回匹配成功的结果;如果不是开头,那就匹配不到则返回None;适合用来检测某个字符串是否符合某个正则表达式的规则。

match() 方法,第一个参数传入正则表达式,第二个参数传入要匹配的字符串。如果匹配成功,返回结果是一个SRE_Match对象, 该对象有两个方法:group()方法可以输出匹配的内容,span()方法可以输出匹配的范围。

search()

在匹配时会扫描整个字符串,然后返回第一个成功匹配的结果,若扫描完仍没找到,就返回None。

findall()

该方法会搜索整个字符串,然后返回匹配正则表达式的所有内容。它返回的是一个列表类型,因此可以遍历、索引、切片取值。

sub()

批量修改满足匹配正则表达式的原字符串中的内容。第一个参数是匹配的正则表达式,第二个参数为替换成的字符串,第三个参数是原文本。第四个可选参数 count 匹配替换次数,count=0 默认全部替换。

res = re.sub(‘\d+‘, ‘‘, text) # 将字符串中的所有数字替换为空

split()

切割字符串,可选参数 maxsplit=0 默认全部切割

compile()

该方法可以将正则字符串编译成正则表达式对象,以便在后面的匹配中复用。

 import re
 ?
 text1 = ‘2019-12-15 12:00‘
 text2 = ‘2019-12-15 12:20‘
 ?
 pattern = re.compile(‘\d{2}:\d{2}‘) # 先写一个要匹配正则表达式的规则;待后面复用
 res1 = re.sub(pattern, ‘‘, text1) ==> ‘2019-12-15‘
 res2 = re.findall(pattern, text2) ==> ‘12:00‘
 ?

 

正则表达式 re模块

原文:https://www.cnblogs.com/yelan5222/p/12080233.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!