简介
- 正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
RE 模块
语法
-
re.match()
尝试从字符串的起始位置匹配一个模式,如果起始位置匹配不成功的话,match()就返回none
import re # 导入模块
result = re.match("正则表达式要匹配的字符串") # 使用match方法进行匹配操作
result.group() #如果上一步匹配到数据的话,可以使用group方法来提取数据
单字符匹配
字符 |
功能 |
. |
匹配任意一个字符(除了\n) |
[] |
匹配[]中列举的字符 |
\d |
匹配数字(0-9) |
\D |
匹配非数字 |
\s |
匹配空白(空格 、Tab键) |
\S |
匹配非空白 |
\w |
匹配单词字符(a-z、A-Z、0-9、_) |
\W |
匹配非单词字符 |
多个字符匹配
字符 |
功能 |
* |
匹配前一个字符出现0次或者无限次 |
+ |
匹配前一个字符出现1次或者无限次 |
? |
匹配前一个字符出现1次或者0次 |
{m} |
匹配前一个字符出现m次 |
{m,n} |
匹配前一个字符出现从m到n次 |
开头结尾匹配
字符 |
功能 |
^ |
匹配字符串开头 |
$ |
匹配字符串结尾 |
分组匹配
字符 |
功能 |
| |
匹配左右任意一个表达式 |
(ab) |
将括号中字符作为一个分组 |
\num |
引用分组num匹配到字符串 |
(?P<name>) |
给分组起名 |
(?P=name) |
引用别名和name分组匹配到的字符串 |
高级用法
search
-
re.search
扫描整个字符串并返回第一个成功的匹配
search:语法
import re
ret = re.search(r"正则表达式","正则表达式要匹配的字符串")
ret.group()
search和match区别
-
re.match
只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None
-
re.search
匹配整个字符串,直到找到一个匹配
findall
- 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。如果没有找到匹配的,则返回空列表
findall:语法
import re
ret = re.findall(r"正则表达式","正则表达式要匹配的字符串")
print(ret)
sub
sub:语法
import re
ret = re.sub(r"正则表达式","替换的字符串","正则表达式要匹配的字符串")
print(ret)
split
split:语法
import re
ret = re.split(r"正则表达式","正则表达式要匹配的字符串")
print(ret)
贪婪和非贪婪
- Python默认是贪婪模式,总是尝试匹配尽可能多的字符。非贪婪模式则相反,总是尝试匹配尽可能少的字符
r的作用
- Python中字符串前面加上r表示原生字符串,与大多数编程语言相同,正则表达式里使用
\
作为转义字符,使用r就不用再转义字符