正则表达式笔记
最近学到了爬虫,发现正则表达式有很多要记的东西,于是写一篇博客当笔记
初级
\d
匹配一个数字:12\d
可以匹配123
\w
匹配一个字母或数字:12\w
可以匹配12a
或123
\s
匹配一个空格.
可以匹配任意字符:12.
可以匹配123
或12a
或12#
*
表示任意个字符(包括0个):12*
可以匹配12a6
或12
+
表示至少一个字符:12+
可以匹配12a6
?
表示0个或1个字符:12?
可以匹配12
或123
{n}
表示n个字符:\d{3}
可以匹配123
{n,m}
表示n-m个字符:\d{3,6}
可以匹配12345
进阶
-
[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线; -
[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串 -
[a-zA-Z\_][0-9a-zA-Z\_]*
可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量; -
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}
更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。 -
A|B
可以匹配A或B -
^
表示行的开头,^\d
表示必须以数字开头。 -
$
表示行的结束,\d$
表示必须以数字结束。
re模块
match()
方法用来判断是否匹配:re.match(r'\d{3}\-\d{3,8}$','010-1234')
split()
方法用来切分字符串:re.split(r'\s+', 'a b c')