Day17-正则
1、认识正则
from re import fullmatch, findall
正则表达式 - 正则表达式是一个可以让复杂字符串问题变得简单的工具
1)验证输入的数据是否是一个合法的手机号
tel = input(‘请输入手机号:’)
if len(tel) != 11:
print(‘不是手机号’)
else:
if tel.isdigit():
if tel[0] != ‘1’:
print(‘不是手机号’)
else:
if tel[1] in ‘012’:
print(‘不是手机号’)
else:
print(‘是手机号’)
else:
print(‘不是手机号’)
result = fullmatch(r’1[3-9]\d{9}', tel)
if result:
print(‘是手机号’)
else:
print(‘不是手机号’)
2)提取字符串中所有的数字字串
str1 = ‘数据3637元环境设计0933汉江师范32hsjf8.98元’
[‘3637’, ‘0933’. ‘32’, ‘8.98’]
[3637, 8.98]
result = findall(r’\d+.\d’, str1)
print(result)
result = findall(r’(\d+.\d)元’, str1)
print(result)
2、正则语法
from re import fullmatch
fullmatch(正则表达式,字符串) - 让正则表达式和指定的字符串进行完全匹配(判断整个字符串是否符合正则表达式所描述的规则)
正确表达式 - python中用字符串(用r的字符串)爱表示一个正则表达式
3、正则匹配符号
普通字符
在正则表达式中表示符号本身的字符就是普通字符
’ . ’ - 匹配任意一个字符
‘\d’ - 匹配任意一个数字
‘\s’ - 匹配任意一个空白字符(空格、回车(\n)、水平制表符(\t))
‘\w’ - 匹配任意一个数字、字母、下划线或者中文
‘\D、\S、\W’ - 反斜杠后面跟大写字母和对应的小写字母相反
01)result = fullmatch(r’abc’, ‘abc’)
print(result)
02) . - 匹配任意一个字符
result = fullmatch(r’a.c’, ‘a胡c’)
print(result)
03) \d - 匹配任意一个数字
result = fullmatch(r’a\d\dc’, ‘a26c’)
print(result)
04) \s - 匹配任意一个空白字符
空白字符 - 可以产空白效果的字符,包括:空格、回车(\n)、水平制表符(\t)
result = fullmatch(r’a\sc’, ‘a\tc’)
print(result)
05)\w - 匹配任意一个数字、字母、下划线或者中文
result = fullmatch(r’a\wc’, ‘a胡c’)
print(result)
06)\D、\S、\W - 反斜杠后面跟大字母和对应的小写字母的功能相反
result = fullmatch(r’a\Dc’, ‘a-c’)
print(result)