2.21正则表达式的一些笔记

Posted on 2023-02-21 11:26  秋以为期1  阅读(25)  评论(0编辑  收藏  举报

正则表达式的一些笔记
\w 匹配字母、数字、下划线 \W(大写) 匹配非字母、数字以及下划线 \s 匹配任意空白字符,等价[\t\n\r\f] \S(大写) 匹配任意非空字符
\d 匹配任意数字 \D(大写) 匹配任意非数字 \Z 匹配字符串结束,如果存在换行,只匹配换行前的结束字符串 \G(大写) 匹配最后匹配完成的位置
\n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开头 $ 匹配字符串的末尾
. 匹配任意字符,除了换行符 [...] 表示一组字符,单独输出,例如,[amk]匹配a,m或k [^...] 不在[]中的字符,[^abc]匹配除a,b,c以外的字符 * 匹配0或多个表达式
+ 匹配1或者多个表达式 ? 匹配0或1个由前面的正则表达式定义的片段,非贪婪方式 {n} 精致匹配n次墙面的表示 {n,m}匹配n到m次由前面正则表达定义的片段,贪婪模式
a|b 匹配a或者b ()匹配括号里面的表达式,也表示一个组

 

一些题目

判断1开头的11位手机号

res = '15679923549'
result = re.match(r'1\d{10}', res) # 以1开头余下还有十个数字
print(result.span())

由数字或者字母组成的6-8位数字
res = '54dwrcf'
result = re.match(r'[0-9a-zA-Z]{6,8}$', res)
print(result.span())

大于18小于100的年龄判断
res = '19'
result = re.match(r'1[8-9]|[2-9][0-9]]', res)
print(result.span())