正则表达式
1.概念
正则是一种可以让复杂的字符串问题变得简单的工具。并不是python特有的语法,所有的高级语言都支持。
如:判断手机号是否是正确的。
方法一:用常规方法
def is_tell(num: str):
if len(num) != 11:
return False
for x in num:
if not x.isdigit():
return False
if num[0] == 1:
return True
if "3" < +num[1] <= "9":
return True
return False
print(is_tell("1233456"))----false
图二
from re import fullmatch
tel=input("输入一个电话号码")
result = fullmatch(r"1[3-9]\d{9}",tel)
print(result)
不管通过正则表达式解决什么问题,写的时候都用正则表达式描述的规则
2.python的re模块
re模块是python用来支持正则表达式的模块,模块中包含了所有和正则相关的函数
fullmatch(正则表达式 , 字符串)-----判断正则表达式和指定的字符串是否完全匹配
成功返回匹配对象,失败返回None
from re import fullmatch
#引入正则模块
3.正则语法
匹配类符号
1.)普通符号------在正则表达式表示符号本身的符号
result = fullmatch(r"abc","abc")
print(result)
匹配
2).----匹配任何一个字符
result = fullmatch(r"a.c","abc")
print(result)
匹配
result = fullmatch(r"..c","abc")
print(result)
匹配---两个点匹配两个字符
3.) \d----匹配任意一个数字字符
result = fullmatch(r"a\dc","a0c")
print(result)
匹配
4.) \s----匹配任意一个空白字符
空白字符-----能产生空白效果的字符.例如:空格、换行、水平制表符
result = fullmatch(r"a\sc","a c")
print(result)
匹配
5.) \D—匹配任意一个不是数字字符
result = fullmatch(r"a\Dc","a+c")
print(result)
匹配
6.) \S—匹配任意一个非空白字符
result = fullmatch(r"a\Sc","a c")
print(result)
None
7.) [字符集]—匹配字符集中的任意一个字符
result = fullmatch(r"a[1-9]c","a7c")
print(result)
匹配
规律:
[abc] 匹配a或者b或者c
[abc\d] 匹配a或者b或者c或者数字
[1-9] 匹配任意数字
[a-z