作业:正则表达式

it2025-01-29  15

作业:利用正则表达式完成下面的操作

1.用户名匹配

​ 要求: a.用户名只能包含数字 字母 下划线

​ b.不能以数字开头

​ c.⻓度在 6 到 16 位范围内

from re import fullmatch user=input('请输入用户名:') user_name=r'[a-zA-Z_][a-zA-Z_\d]{5,15}' print(fullmatch(user_name,user)) 密码匹配

​ 要求: 1.不能包含!@#¥%^&*这些特殊符号

​ 2.必须以字母开头

​ 3.⻓度在 6 到 12 位范围内

from re import fullmatch password=input('请输入用户名:') user_password=r'[a-zA-Z][^!@#¥%^&*]{5,11}' print(fullmatch(user_password,password)) ipv4 格式的 ip 地址匹配 提示: IP地址的范围是 0.0.0.0 - 255.255.255.255 user=input('请输入ip地址:') user_name=r'([1-9]?\d\.){3}\d|(1\d\d\.){3}1\d\d|(2[0-4]\d\.){3}2[0-4]\d|(25[0-5]\.){3}25[0-5]' print(fullmatch(user_name,user)) 提取用户输入数据中的数值 (数值包括正负数 还包括整数和小数在内) 并求和 例如:“-3.14good87nice19bye” =====> -3.14 + 87 + 19 = 102.86 from re import findall from functools import reduce str1='-3.14go-.od87nice19bye' str2=r'-?\d+\.?\d*' result=findall(str2,str1) print(reduce(lambda x,y :x+float(y),result,0))

验证输入内容只能是汉字

from re import fullmatch strs=input('请输入中文:') print(fullmatch(r'[\u4e00-\u9fa5]+',strs))

匹配整数或者小数(包括正数和负数)

from re import fullmatch strs=input('请输入一个数:') print(fullmatch(r'[+-]?(0|[1-9]\d*|0\.\d+|[1-9]\d*\.\d+)',strs))

使用正则表达式获取字符串中所有的日期信息 匹配年月日日期 格式:2018-12-6

注意年的范围是1~9999, 月的范围是1~12, 日的范围是130或者131或者1~29(不考虑闰年)

from re import fullmatch str1=r'[1-9]\d{3}-([13578]|1[0-2])-(\d|[1-2]\d|3[01])' str2=r'[1-9]\d{3}-([469]|11)-([1-9]|[1-2]\d|30)' str3=r'[1-9]\d{3}-2-([1-9]|[1-2]\d)' def strs(*args): for i in args: str4=fullmatch(i,'2018-12-6') if str4 !='None': return str4 result=strs(str1,str2,str3) print(result)
最新回复(0)