re模块
正则表达式测试网站:https://tool.chinaz.com/regex
字符组:
匹配所有数字:[0-9]
匹配所有小写字母:[a-z]
匹配所有大写字母:[A-Z]
匹配所有字母数字:[0-9a-ZA-Z]
只能从ascii码小的值到大的值,可以一次取多个区间:[0-9a-f]
元字符
\d [0-9]
\w [0-9a-ZA-Z_] 中文?
\s \t \n 匹配所有的空白符|制表符|换行符
\D \IW \S 匹配所有非数字 \ 匹配所有非数字字母下划线 \ 匹配所有非空白
. 匹配除了换行符之外的任意一个字符
$ 匹配一个字符串的开始,$匹配一个字符串的结束
[] [] 字符组非字符组
| () 或用来规范符号的作用域
量词
{n} 匹配n次
{n,} 匹配至少n次
{n,m} 匹配n-m次
? 0 或 1 次
+(1-无穷大)
*(0-无穷大 )
findall(正则表达式,要匹配的字符串)
# 功能:取所有
# 返回值:[列表],所有匹配到的项都会被返回到列表中
import re
username = 'junlan1234'
regex = r'\d' # 正则表达式,匹配数字
ret = re.findall(regex, username)
print(ret)
search(正则表达式,要匹配的字符串)
# 功能: 从头开始往后找任何地方有符合条件的直接将其返回,不再往回找
# 返回值:re 自定义类型
import re
username = 'junlan1234'
regex = r'\d' # 正则表达式,匹配数字
ret = re.search(regex, username)
print(ret)
match(正则表达式,要匹配的字符串)匹配用户输入的内容是否合法时都是用match
功能:从头开始匹配,如果开始部分匹配到了就是匹配成功,如果开始部分没有匹配到,就匹配失败
返回值:re自定义类型
import re
phone_num = input('请输入合法的手机号:')
regex = r'1[2-9]\d{9}$'
ret = re.match(regex,phone_num)
if ret:
print(ret)
print('是合法的手机号码%s'%phone_num)
else:
print('不是合法的手机号码')