文章目录

  • 利用正则表达式完成下面的操作:
    • 1. 用户名匹配
    • 2. 密码匹配
    • 3. ipv4 格式的 ip 地址匹配
    • 4. 提取用户输入数据中的数值 (数值包括正负数 还包括整数和小数在内) 并求和
    • 5. 验证输入内容只能是汉字
    • 6. 匹配整数或者小数(包括正数和负数)
    • 7. 使用正则表达式获取字符串中所有的日期信息 **匹配年月日日期 格式:2018-12-6**
    • 8. 替换字符串中的不良内容:将输入的内容中的不良内容全部替换成*(参考王者荣耀聊天要求)
    • 9. 验证输入用户名和QQ号是否有效并给出对应的提示信息
    • 10. 拆分长字符串:将一首诗中的每一句话分别取出来

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

1. 用户名匹配

要求:

  • 用户名只能包含数字 字母 下划线
  • 不能以数字开头
  • ⻓度在 6 到 16 位范围内
# copy by CSDN
import reuser_name = input("请输入你的用户名:")
result = re.fullmatch(r'[a-zA-Z_][a-zA-Z_\d]{5,15},'user_name)
if result:print(user_name,'合法')
else:print(user_name,'不合法')

2. 密码匹配

要求:

  • 不能包含!@#¥%^&*这些特殊符号
  • 必须以字母开头
  • ⻓度在 6 到 12 位范围内
# copy by CSDN
password = input('请输入你的密码:')
result = re.fullmatch(r'[a-zA-Z][^@#¥%^&*]{5,11},'password)
if result:print('密码合法')
else:print('密码不合法')

3. ipv4 格式的 ip 地址匹配

提示: IP地址的范围是 0.0.0.0 - 255.255.255.255

例如:255.189.10.37正确,256.189.89.9错误。

result = re.fullmatch(r'((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]),'123.23.45.67)
print(result)

4. 提取用户输入数据中的数值 (数值包括正负数 还包括整数和小数在内) 并求和

# 例如:“-3.14good87nice19bye” =====> -3.14 + 87 + 19 = 102.86
import restr1 = '-3.14good87nice19bye'
x = re.findall(r'-\d+\.\d\d+?|\d+',str1)
x1 = re.findall(r'-\d+\.?\d*',str1)result = sum([float(x) for x in x1])
print(result)

5. 验证输入内容只能是汉字

str1 = '你是猪猪侠'
result = re.fullmatch(r'[\u4e00-\u9fa5]+',str1)
print(result)

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

import re
num1 = '3.14Aijsj12Q112q'
print(re.findall(r'\d+\.\d\d+?|\d\d+|\d+?',num1))# copy by CSDN
'''
89、-23、+34、0   合法
2.33  -2.33  +23.889  9.00  0.22  9.000 合法0001   不合法
233.  233   0023.2  不合法  整数正则:[-+]?(0|[1-9]\d*)
小数正则:[-+]?(0|[1-9]\d*)\.\d+
数字正则:[-+]?(0|[1-9]\d*)(\.\d+)?
'''
result = re.fullmatch(r'[-+]?(0|[1-9]\d*)(\.\d+)?','1.233')
if result:print('合法')
else:print('不合法')

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

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

import re
re_str = '\d{4}-((((0?(1|3|5|7|8))|(1(0|2)))(-(([0-2]?[0-9])|(3[0-1])))?)|(((0?(2|4|6|9))|(11))(-(([0-2]?[0-9])|(30)))?))'
str1 = re.fullmatch(re_str, '2018-6-06')
print(str1)

8. 替换字符串中的不良内容:将输入的内容中的不良内容全部替换成*(参考王者荣耀聊天要求)

# 假设替换数字
print(re.sub('[SB脑残]+', '*', '你是不是SB,你是不是脑残'))

9. 验证输入用户名和QQ号是否有效并给出对应的提示信息

​ 要求:

​ 用户名必须是字母、数字或下划线构成且长度在6~20个字符之间

​ QQ号是5~12的数字且首位不能为0

user_name = input('请输入您的用户名:')
result = re.fullmatch(r'[a-zA-Z\d_]{6-20}',user_name)
QQ_num = input('请输入您的QQ号:')
result2 = re.fullmatch(r'[1-9]\d{4,11}',QQ_num)if result:if result2:print(f'用户名{user_name}:QQ号{QQ_num}')

10. 拆分长字符串:将一首诗中的每一句话分别取出来

poem = ‘床前明月光,疑是地上霜。举头望明月,低头思故乡。’

result = re.split(r'[,。]',poem)
print(result)

正则表达式课后练习题相关推荐

  1. linux孟庆昌第六章课后题_第六章课后练习题答案

    第四部分课后练习题 一.单项选择题 1 . 某投资方案的年营业收入为元, 年总营业成本为 60000 元, 其中年折旧额 10000 元,所得税率为 33 %,该方案的每年营业现金流量为 ( B ) ...

  2. c语言谭浩强第六章答案,C语言谭浩强版本第6章课后练习题答案..doc

    第6章课后练习题 单项选择题 以下程序执行后,a是: int a =0,i,j; for (i=5;i>0;i--) for(j=0;j<4;j++) a++; 20 25 24 30 执 ...

  3. 六、DOM(上) - 章节课后练习题及答案

    第一章链接:初识JavaScript - 章节课后练习题及答案 第二章链接:JavaScript 基础(上) - 章节课后练习题及答案 第三章链接:JavaScript 基础(下) - 章节课后练习题 ...

  4. 十一、jQuery(下) - 章节课后练习题及答案

    第一章链接:初识JavaScript - 章节课后练习题及答案 第二章链接:JavaScript 基础(上) - 章节课后练习题及答案 第三章链接:JavaScript 基础(下) - 章节课后练习题 ...

  5. N4 新标日初级下 问法总结和课后练习题12答案

    新编日初级下课后练习题答案 文章目录 文法 2.7.25 练习 1 练习 2 2.7.26 练习 1 练习 2 2.7.27 练习 1 练习 2 2.7.28 练习 1 练习 2 2.8.29 练习 ...

  6. c语言教材课后题答案6,C语言谭浩强版6章课后练习题答案.doc

    C语言谭浩强版6章课后练习题答案 第6章课后练习题 单项选择题 以下程序执行后,a是: int a =0,i,j; for (i=5;i>0;i--) for(j=0;j<4;j++) a ...

  7. 计算机考试课后作业,2017年职称计算机《PowerPoint》课后练习题

    2017年职称计算机<PowerPoint>课后练习题 导语:在职称考试中,关于计算机ppt的考试内容你都清楚有哪些了吗?下面是百分网小编整理的相关考试试题,感兴趣 或者要考试的小伙伴都可 ...

  8. Python 课课练 (六):列表、元组课后练习题

    目录 一.列表课后练习题 二.元组课后练习题 练习前置知识 Chapter One : 开启 Python 之旅 Chapter Two : Python 语言基础.运算符与表达式.程序的控制结构合集 ...

  9. Python 课课练 (八):函数课后练习题

    目录 一.函数课后练习题 练习前置知识 Chapter One : 开启 Python 之旅 Chapter Two : Python 语言基础.运算符与表达式.程序的控制结构合集 Chapter T ...

  10. 五、JavaScript 对象 - 章节课后练习题及答案

    第一章链接:初识JavaScript - 章节课后练习题及答案 第二章链接:JavaScript 基础(上) - 章节课后练习题及答案 第三章链接:JavaScript 基础(下) - 章节课后练习题 ...

最新文章

  1. 广联达2018模板算量步骤_老师傅带你学造价,广联达GTJ2018图文详解,小白也能学会的软件...
  2. MATH6005 Final Assignment MATH6005 2018-19
  3. 究竟是该采用面向服务结构,还是单体结构
  4. 接口转发和重定向区别(一)
  5. tensorflow基本概念
  6. 考试用计算机反思800字,考试反思作文800字
  7. SQL练习题完整(做完你就是高手)
  8. java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇
  9. 目标检测——YOLO系列算法(YOLOv4、YOLOv5)的学习笔记
  10. 手把手:教你如何用深度学习模型预测加密货币价格
  11. openstack instance bootmgr is missing 问题 修复
  12. Linux一些最基本命令
  13. 华为HG8347R光猫 4台设备连接限制破解全过程
  14. python输出冒号_详谈python中冒号与逗号的区别_python_脚本之家
  15. Js、Vue阻止事件冒泡行为
  16. 计算机网络组成复习笔记
  17. vmware和hyper-v的一个坑
  18. 一期每日一GO群分享-flag、viper、协程池、异常处理
  19. [Texture]详解Texture2D
  20. Xshell 使用技巧

热门文章

  1. 转载:Max vs Maya
  2. 厦大计算机推免复试,统考生没戏!厦大该专业3个系招生,推免占比最高100%!...
  3. 成功安装python后、在dos命令行窗口中-python在WIN运行时去掉DOS窗口显示的方法
  4. sun java system calendar 服务器拒绝服务_sun java system cale
  5. python如何提交作业_提交作业
  6. 360怎样修改wifi服务器地址,360路由器怎么重新设置?
  7. 会玩,也是一种积极的生活态度
  8. 请编程序将china译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母A后面4个字母为E,因此,China应译为Glmre。
  9. 基于深度学习的图像压缩
  10. 上市公司环境污染数据大全 2000-2020年上市公司(区分行业、重污染)环境污染数据 环境信息披露EDI 环保投资环境绩效环境排放数据