正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
- 匹配单个字符
a-z 0-9 ?!@等等 匹配对应的指定字符串
. 匹配任意一个字符(除了\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分组匹配到的字符串
可以返回指定分组的内容:re.group(1) #从1开始非0
- 修饰符
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
在python中需要通过正则表达式对字符串进行匹配时,要使用re模块
import re
result = re.match(匹配规则,匹配字符串,修饰符) #match从头开始匹配直到结束或失败,修饰符选项非必须
result =re.search(匹配规则,匹配字符串)#search 会扫描整个字符串,并返回第一个成功的匹配
print(result.group())
-----------------------------------------------------------------------------------------
result=re.findall(匹配规则,匹配字符串)#扫描整个字符串,但会所有匹配成功的字符并放置进一个列表
print(relust)
-----------------------------------------------------------------------------------------
re.sub(匹配规则,替换字符串,匹配字符串)#扫描整个字符串,匹配的字符串替换成对应的字符