简介
- 正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
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就不用再转义字符
网友评论