在python爬虫项目中也有
regex101: build, test, and debug regexhttps://regex101.com/正则表达式匹配测试网站
密码匹配,爬虫匹配
基础用法:
1、限定符 ? * + {int}
? 指的是?前边的字符0或者1次
used?
* 指的是出现0次或者多次
+ 指的是出现1次或者1次以上
指定出现次数用{},{}内填写次数。或者范围。{2};{2,6};{2,}
匹配的是一个字符的规律,匹配多个的话,用()括起来。
2、或
匹配 a cat 或者 a dog,括号是不可少的
3、字符类:指定字符范围
如果带有^,则表示匹配所有非字符集范围
4、元字符 数字 、空白符、单词开头、单词结尾
大多元字符都是以反斜杠开头 \
\d+ 数字 ==【0-9】
\w+ 代表单词,所有的英文字符,数字,下划线
\s 代表空白符 包括Tab 和换行符(没有+)
\D+ 代表非数字字符
\W+ 代表非单词字符
\S+ 非空白字符
.句点也是一个关键字符,包括任意字符,不包括换行符
^a 匹配行首的a
a$ 匹配行尾的a
匹配行首,行尾:以a开头,以a结尾为例
5、贪婪与懒惰
如果.+,则会匹配所有,属于贪婪匹配。加个?就可以了
匹配16进制颜色字符串
首先#匹配,[a-fA-F0-9]字符集
{6}出现6次
\b代表单词字符的边界,防止最下边的#fffffff也被识别
IPV4地址匹配
第一个数前两位是25,第三位只能是0-5 25[0-5]
第一位是2,第二位是0-4,第三位取0-9任意值 2[0-4]\d
如果第一位是0或者1,第二位或者第三位可以是00-99任意数字 [01]\d\d
以上讨论了ip地址在三位数的情况,ip地址也可以是1位数或者是2位数,因此,第一位和第三位可以用?来匹配出现或者不出现。
25[0-5]|2[0-4]\d|[01]?\d\d?
数字部分匹配好了,匹配句点。因为句点是关键字,所以需要用\转义
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
首位都加上\b匹配边界。