一.正则表达式
优点 灵活 功能性强 逻辑性强
缺点 太活 不易上手
正则表达式是由普通字符和元字符组成的,普通字符包含大小写字母 数字 匹配普通字符直接写就行了
元字符 是正则表达式的灵魂
1.字符组[字母按ascii码顺序 数字还是0-9]
2.简单元字符
. 匹配除了换行符以外的任意字符
w 匹配字母或数字或下划线
s 匹配任意的空白符
d 匹配数字
匹配一个换行符
匹配一个制表符
匹配一个单词的结尾
^ 匹配字符串的开始
& 匹配字符串的结尾
W 匹配非字母或者数数字或者下划线
D 匹配非数字
S 匹配非空白图
a|b 匹配字符a或者b 前者要比后者长不然匹配不出来长的.
() 匹配括号内的表达式 也表示一个组?
[...] 匹配字符串中的字符
[^...] 匹配除了字符串中字符的所有字符
3.量词 一次性匹配很多个字符
* 重复零次或者更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,m} 重复n到m次
4.惰性匹配和贪婪匹配
在量词中的 * , + , {} 都属于贪婪匹配 就是尽可能多的匹配到结果
str : 麻花藤昨天让英雄联盟关服了
reg : 麻花藤.* 此时匹配的是整句话
reg : 麻花藤.*? 此时匹配的是麻花藤
.*?x 含义是找到下一个x为止
5.分组
正则中使用()进行分组 比如匹配一个相对复杂的身份证号 .身份证号分为两种 老式的有15位 新的有18位 并且新的身份证号皆为可能有x
() 数字 获取第数字个分组内的正则,数的是小括号
6.转义
在正则:
.
元字符
\n
python
r"\n"
'\.'
.