首页 > 编程语言 >python__re模块&正则表达式*正则表达式练习题

python__re模块&正则表达式*正则表达式练习题

时间:2023-10-31 21:00:10浏览次数:40  
标签:__ 练习题 匹配 数字 u9fa5 正则表达式 u4e00 字符

1、如下图是python中的re模块的讲解,已经正则表达式的基础知识

2、python 正则表达式训练题(网上找的,最后附上了地址)

1. \d,\W,\s,\B,.,*,+,?分别是什么?
\d:数字
\W:非英文数字下划线的任意字符
\s:任意空白字符
\B:非单词开始或结尾的位置
.表示非换行符的任意字符
*表示匹配前面子表达式0次或多次
+表示匹配前面子表达式1次或多次
?表示匹配前面子表达式0次或1次

2. (?=a),(?<!a),(?<=a),(?!a)分别是什么?
(?=a)表示匹配a前面的字符
(?<!a)表示匹配前面不是a的字符
(?<=a)表示匹配a后面的字符
(?!a)表示匹配后面不是a的字符

3. 什么是贪婪匹配和懒惰匹配?
贪婪匹配:表示尽可能多的匹配,常见写法是.*
懒惰匹配:也叫非贪婪匹配,表示尽可能少的匹配,常见写法是.*?

4. \d{1,2}*这样的写法对吗?请说明理由。
不正确,这是因为所有限定类元字符后只能紧跟?这个限定类元字符,如果紧跟其他限定类元字符则会报错。正确的写法是(\d{1,2})*

5. 怎么让正则表达式从字符串的右边开始匹配?
使用KaTeX parse error: Undefined control sequence: \d at position 14: 则表示从右边开始匹配,比如\̲d̲{2}表示从右开始匹配两个数字

6. 写出验证用户名的正则表达式,用户名只能输入英文、数字和下划线。
^\w+$

7. 写出验证用户名的正则表达式,用户名只能输入汉字、英文、数字和下划线。
^[\w\u4e00-\u9fa5]+$

8. 验证用户密码,长度在6~18 之间,只能包含英文和数字。
^[A-Za-z0-9]{6,8} $

9. 验证用户密码强度,最少6位,至少包括1个大写字母、1个小写字母、1个数字和1个特殊字符。
^(?=.\d)(?=.[A-Z]) (?=.[a-z]) (?=.[!@%^*?~])[\u4E00-\u9FA5A-Za-z0-9!@%^*?~]{6,16}$

10. 匹配QQ号。
^[1-9]\d{4,12}$

11. 匹配Email地址。
([\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+)

12. 匹配手机号。
^1[3-9]\d{9}$

13. 匹配固定电话号码。
^((0\d{2,3})|0\d{2,3})-?\d{7,8}(-\d{1,6})?$

14. 用正则表达式分别提取固定电话号码中的区号和电话号。
(?<=()\d{3,4}(?=)-?\d{7,8}(-\d{1,6})?KaTeX parse error: Undefined control sequence: \d at position 4: )|^\̲d̲{3,4}(?=\-?\d{7…)

(?<=^\d{3,4}-?)\d{7,8}(?=(\d{1,6})?KaTeX parse error: Got function '\-?)\d…)

(?<=^\d{3,4}-?\d{7,8}-)\d{1,6}KaTeX parse error: Got function '-?\d{7…

15. 匹配身份证号码。
^\d{18}|\d{17}[Xx]$

16. 匹配出身份证号码中的区域代码。
(?<=^)\d{6}(?=\d{12}KaTeX parse error: Undefined control sequence: \d at position 9: )|(?<=^)\̲d̲{6}(?=\d{11}[Xx…)

17. 用正则表达式匹配出身份证号中的出生日期。
(?<=^\d{6})\d{8}(?=\d{4}KaTeX parse error: Undefined control sequence: \d at position 8: )|(?<=^\̲d̲{6})\d{8}(?=\d{…)

18. 匹配银行卡号。
^[1-9]\d{12,18}$

19. 匹配邮政编码。
^\d{6}$

20. 匹配包含送货地址的字符串。
^[\s\S]送货地址[\s\S]$

21. 匹配车牌号。
^(京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新|[1-3]\d{5}使|(WJ)[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新]?((?=[A-Z])(?!I|O).|[0-9]){5}|((?=[A-Z])(?!I).){2}[0-9]{5})$

22. 匹配整数。
^-?\d+$

23. 匹配非零的负整数。
^\-(?!0)\d+$

24. 匹配非零的正整数。
^(?!0)\d+$

25. 匹配浮点数。
^(-?\d*.?\d*([eE][-+]?\d+)?|0)$

26. 匹配非负浮点数。
^(\d*.?\d*([eE][-+]?\d+)?|0)$

28. 匹配以下HTML中的URL:
<link rel=“search” href=“https://www.baidu.com” />
 (?<=href=\s?“).*?(?=”\s?/>)

29. 匹配HTML标记。
<.*?>

30. 匹配<a <123> <456> a>中的数字。
(?<=<)\d+(?=>)

31. 匹配<a <123 <456> a>中的数字。
(?<=<)\d+(?=>)?

32. 匹配以.com结尾的web域名。
^(?=^.{4,255}$)[a-zA-Z0-9][a-zA-Z0-9-]{0,62}(.[a-zA-Z0-9][a-zA-Z0-9-]{0,62})*.com$

33. 匹配IP地址。
^(2([0-4]\d|5[0-5])|1\d{2}|[1-9]\d|[1-9])(.(2([0-4]\d|5[0-5])|1\d{2}|[1-9]?\d)){3}$

34. 匹配MAC地址。
^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-z]{2}$

35. 匹配文件名的后缀(注意文件名中可能出现.号)
((?!.).)*?$

36. 匹配文件名(注意文件名中可能出现.号)。
^.*(?=.)

37. 匹配汉字。
[\u4e00-\u9fa5]

38. 匹配AABB型成语。
^([\u4e00-\u9fa5])\1((?=[\u4e00-\u9fa5])(?!\1).)\2$

39. 匹配ABAB型成语。
^([\u4e00-\u9fa5])((?=[\u4e00-\u9fa5])(?!\1).)\1\2$

40. 匹配yyyy-mm-dd格式的日期。
^(\d{4}(?!0{4})-((0[13578]|1[02])-31|(01|0[3-9]|1[0-2])-(29|30)|(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8]))|((\d{2}(0[48]|[13579][26]|[2468][048])|(0[48]|[13579][26]|[2468][048])00)-02-29))$

41. 使用正则表达式让2020-05-20 变成 2020.05.20
42. 使用正则表达式给数字加上千分符。
(?=\B(\d{3})+(?=.))

43. 去除字符串中的中文。
[\x{4e00)-\x({9fa5)]

44. 去除字符串中的特殊字符。
[^A-Za-z0-9\x{4e00)-\x({9fa5)]

45. 去除字符串中的空白字符。
\s

46. 匹配第一个连续出现的字符。
(.+)1
————————————————
原文链接:https://blog.csdn.net/a34921324/article/details/127379809

标签:__,练习题,匹配,数字,u9fa5,正则表达式,u4e00,字符
From: https://www.cnblogs.com/ccnn9/p/17799229.html

相关文章

  • ssm学习每日总结-第一天
    第十一天学习今天着手看了一下ssm框架,了解了一下ssm框架的结构,即springmvn,spring,mybatis。主要了解了一下spring的底盘springframework。除此之外,还回顾了一下王建民老师留下的软件分析作业,仔细想想,建民老师的这门课,还是比较抽象的,大部分都是画图啊,理论啊等等,作业呢也是流程图......
  • 《程序员修炼之道:从小工到专家》阅读笔记(4)
    第36节主要讨论了在项目开始之前的一些准备步骤和流程。作者强调了需求识别的重要性,并提出需求是与用户共同完成的“发现”过程,而不仅仅是收集他们的意见。需求在某种程度上应该保持抽象,因为需求不等同于架构或设计。作者还提到了一个词汇表的维护,这是为了消除歧义,并确保大家对需......
  • #pragma message 预处理指令
    #pragmamessage是一个预处理指令,用于在编译过程中向程序员发出消息或警告。这个指令通常用于在编译时向开发者提供一些有用的信息。使用场景:编译时提示版本信息、时间信息、等等#pragmamessage("Yourmessagehere")//编译时就可以输出"Yourmessagehere" 示例代码:#......
  • Azkaban Execute Flow一直处于PREPARING状态,不执行
    启动了任务后,任务一直处于Preparing状态,无法执行,详情如下: 原因:内存问题,过滤器会检查executor主机空余内存是否会大于6G,若不足6G,则web-server不会将任务交由该主机执行,需要修改azkabn-web下的azkaban.properties配置文件,去掉MinimumFreeMemory。将配置项:azkab......
  • 读书笔记
    03运行超市抹零结账行为 a=float(input("请输入商品总价:"))b=int(a)print(b)print('学号后四位:143108')运行结果‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪......
  • Project#1: Buffer Pool
    撰写本文的目的:记录本人在不参考其他任何形式的解决方法(思路/源码)、仅靠课程提供的资源(课本/参考资料)和Discord中highlevel的讨论的情况下,独立完成该课程的过程。欢迎大家和我讨论学习中所遇到的问题。ZiHao'sBlog由于gradescope中对non-cmustudents仅开放了Project#0,本文方......
  • 智慧交通解决方案:钡铼技术ARM工控机
    在交通运输领域,钡铼技术ARM工控机可以实现以下功能: 实时监控和管理:利用钡铼技术ARM工控机,可以对交通运输中的车辆、船只、飞机等进行实时监测和管理,帮助调度员提高车辆调度和路线规划的准确性和效率。安全保障:利用钡铼技术ARM工控机,可以建立健全的交通安全预警系统,及时响应各......
  • CF1707 题解
    CF1707题解A考场上1h才出思路...弱智了。我们将参加大于当前智商的行为叫做“摆烂”。我们考虑如果现在摆一次,将来某一次不摆,那么现在不摆,将来那次开摆,中间过程的智商会加1。更优。所以一定一摆就摆到底。而且一定会摆到最后一个。所以我们二分从什么时候开摆,看是否能摆到......
  • conda、pip、venv 工具功能
    condaconda针对的是计算机系统层面对各个环境进行管理,层次最高。用于管理python版本,让一台电脑能同时使用各个版本的python,以便应对不同版本的python的项目。conda使用环境体现不同版本的python以及python对于于自己的库。这个功能是conda最突出的功能,不同环境数据是独立的。......
  • 【UR #26】 铁轨回收
    【UR#26】铁轨回收一道玩状态设计的超厉害题目。首先有一个经典的dp。从前到后做记录被加了\(j\)的数有\(c_j\)个。可以过\(B_n\le4\)。想要扩展一下这个做法,直接记\(S\)表示后面加数的集合。很显然会直接爆炸。但是呢,有一个很美妙的性质,就是一个位置上加的数是有......