正则表达式整理(持续更新)

偶尔会用到正则匹配,下面做一个常用的正则表达式整理以便往后查询

最常用的匹配

字符 描述
\d 表示任意数字,就是阿拉伯数字0~9这些。
\D 大写的表示与小写的相反,表示不是数字。
\w 代表字母,数字,下划线。a-zA-Z0~9_
\W 大写的表示与小写的相反,不是字母、不是数字也不是下划线。
\n 代表一个回换行。
\r 代表一个回车。
\f 代表换页。
\t 代表一个Tab
\s 代表所有的空白符,也就是上面四个:\n\r\f\t
\S 大写的表示与小写的相反,代表所有不是空白的字符。
\A 代表字符串的开始。
\Z 代表字符串的结束。
^ 匹配字符串开始的位置。
$ 匹配字符串结束的位置。
. 代表所有的单个字符,除了换行\n,回车\r
[...] 代表在[]范围内的字符,比如[a-z]就代表a-z的字母。
[^...] 与上一个相反,代表不在[]范围内的字符。
{n} 匹配在{n}前面的东西,比如o{2}不能匹配Bob中的o,但是能匹配food中的两个o
{n,m} 匹配在{n,m}前面的东西,比如o{1,3}将匹配fooooood中的前三个o
{n, } 匹配在{n,}前面的东西,比如o{2,}不能匹配Bob中的o,但是能匹配foooood中的所有o
* {0,}一样,匹配*前面的0次或多次。比如zo*能匹配zzo以及zoo
+ {1,}一样,匹配+前面1次或多次。比如zo+能匹配zo以及zoo但不能匹配z
? {0,1}一样,匹配?前面0次或1次
() 匹配括号里的内容

re.match

传入两个参数,第一个是匹配的规则,第二个是需要被过滤的内容

1
2
3
4
5
import re

content = 'you have 100 bananas.'
res = re.match('^yo.*(\d+)\s.*s$',content)
print(res.group(1))

请我喝杯咖啡吧~