常用正则表达式:
\d 可以匹配一个数字
\w 可以匹配一个字母或数字
. 可以匹配任何一个字符
要匹配变长的字符:
* 可以匹配零个或n个字符
+ 可以匹配一个或n个字符
? 可以匹配零个或1个字符
{n} 可以匹配n个字符
{n,m} 可以匹配n至m个字符
要做更精确地匹配,可以用[]
表示范围:
扫描二维码关注公众号,回复:
28048 查看本文章
要做更精确地匹配,可以用[]
表示范围,比如:
-
[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线; -
[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100'
,'0_Z'
,'Py3000'
等等; -
[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,所以(P|p)ython
可以匹配'Python'
或者'python'
。
^
表示行的开头,^\d
表示必须以数字开头。
$
表示行的结束,\d$
表示必须以数字结束。
练习题:
#! /usr/bin/env python3
# -*- coding:gbk -*-
import re
email1= '[email protected]'
email2='[email protected]'
if re.match('[a-zA-Z0-9\.\_]+\@[a-zA-Z0-9\.\_]+\.com$',email1):
print('ok')
else:
print('erros')