正则表达式:用来匹配特定规则的字符串。
正则表达式是处理字符串的强大工具,有特定的语法结构;实现字符串的检索、替换、匹配验证等。
模式 | 描述 |
---|---|
. | 匹配除换行符之外的任意字符 |
^ | 匹配开头 |
$ | 匹配结尾 |
* | 匹配任意多个(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 | 使匹配对大小写不敏感,也就是不区分大小写 |
从字符串的开头位置匹配正则表达式,如果匹配,就返回匹配成功的结果;如果不是开头,那就匹配不到则返回None;适合用来检测某个字符串是否符合某个正则表达式的规则。
match() 方法,第一个参数传入正则表达式,第二个参数传入要匹配的字符串。如果匹配成功,返回结果是一个SRE_Match对象, 该对象有两个方法:group()方法可以输出匹配的内容,span()方法可以输出匹配的范围。
在匹配时会扫描整个字符串,然后返回第一个成功匹配的结果,若扫描完仍没找到,就返回None。
该方法会搜索整个字符串,然后返回匹配正则表达式的所有内容。它返回的是一个列表类型,因此可以遍历、索引、切片取值。
批量修改满足匹配正则表达式的原字符串中的内容。第一个参数是匹配的正则表达式,第二个参数为替换成的字符串,第三个参数是原文本。第四个可选参数 count 匹配替换次数,count=0 默认全部替换。
res = re.sub(‘\d+‘, ‘‘, text) # 将字符串中的所有数字替换为空
切割字符串,可选参数 maxsplit=0 默认全部切割
该方法可以将正则字符串编译成正则表达式对象,以便在后面的匹配中复用。
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‘
?
原文:https://www.cnblogs.com/yelan5222/p/12080233.html