美文网首页Python全栈工程师
25.1-正则表达式习题讲解

25.1-正则表达式习题讲解

作者: BeautifulSoulpy | 来源:发表于2019-10-20 09:04 被阅读0次

只有自己成为自己的贵人,别人才会成为你的贵人!

正则表达式一旦会用,后面都不是问题;
不一定支持断言(未必所有方言都支持),别再里面加断言;
但它支持分组,在替换的时候要引用前面分组,这个时候就要使用分组;

总结:
1.匹配先左后右; 注意贪婪与非贪婪的模式;
2.反复匹配、搜索用 set;

练习1:匹配邮箱地址;

test@hot-mail.com
v-ip@magedu.com
web.manager@magedu.com.cn
super.user@google.com
a@w-a-com

#练习1:匹配邮箱地址;
import re

s = '''
test@hot-mail.com
v-ip@magedu.com
web.manager@magedu.com.cn
super.user@google.com
a@w-a-com'''

#.*@.*\.com\.|(\w+)$

regex = re.compile('.*@.*\..*')
regex = re.compile('[\w-.]+@[\w-.]+\.\w+')   # 提取邮箱()
print(regex.findall(s))
#----------------------------------------
['test@hot-mail.com', 'v-ip@magedu.com', 'web.manager@magedu.com.cn', 'super.user@google.com']

练习2: 匹配html 标记内的内容;

h = "<a href='http://www.magedu.com/index.html' target='_blank'>马哥教育</a>"

# 练习2: 匹配html 标记内的内容;
h = "<a href='http://www.magedu.com/index.html' target='_blank'>马哥教育</a>"

regex = re.compile('>\w+')
regex = re.compile('>(.*)<')    # a 标记的内容;
lst = regex.findall(h)
print(regex.findall(h))
#------------------------------------------
['马哥教育']


总结:
1. **a标记中标题的提取:      >(.*)</a>**
      复杂标记的提取   (<a[^<>]*>)(.*)</a>
练习3: 匹配合法的URL;
u = '''http://www.magedu.com/index.html
https://login.magedu.com
file:///ect/sysconfig/networkk'''

regex = re.compile('[https]{2,5}:[//www]{2,5}.*(?<=.)[html|com]')
regex = re.compile('(?<scheme>\w+)://(.*)')
print(regex.findall(u))
#----------------------------------------------
['http://www.magedu.com/index.html', 'https://login.magedu.com']

总结:
(?<scheme>\w+)://(?<path>.*)/(?<file>.*)    # URL匹配各个成分
练习4:匹配二代身份证 ID ;

17位数字+1位校验码组
前6位地址码,8位出生

c = '''321105700101003
321105197001010030
11210020170101054X'''

regex = re.compile('\d{6}[1-2]\d{3}[0-1]\d[0-3]\d{4}[X|\d]')
print(regex.findall(c))
#-------------------------------------
['321105197001010030', '11210020170101054X']

总结:
1. 写|的时候,谁前谁后还是有关系的;   \d{17}[\dxX]|\d{15}
练习5:判断密码强弱

要求密码必须由 10-15位 指定字符组成:
十进制数字
大写字母
小写字母
下划线
要求四种类型的字符都要出现才算合法的强密码
例如:Aatb32_67mnq,其中包含大写字母、小写字母、数字和下划线,是合格的强密码


总结:
1. 排序的方案:先排序,再匹配;  \d+[A-Z]+_[a-z+]   
2. 试4次,遍历4次;非法字符;
    先判断位数
3. 给密码类型打分;

练习6:单词 统计 word count

对sample文件进行单词统计,要求使用正则表达式

思路1:对  字符、-   取反  后是非-字符分割split;
regex = re.compile('[^\w-]+')    #

相关文章

  • 25.1-正则表达式习题讲解

    只有自己成为自己的贵人,别人才会成为你的贵人! 正则表达式一旦会用,后面都不是问题;不一定支持断言(未必所有方言都...

  • 3.27

    剩: 英语10-15 数学10 讲解+习题讲解 11讲解+习题讲解 逻辑04论证 证券 初级

  • 习题讲解思考

    如何能让学生在学习数学的过程中获得深度学习的体验。 措施一:动画效果与语言表达一致。 措施二:教师思维与学生思维同步。

  • python 学习笔记5 2018-4-10

    一,习题讲解 ``` - (instancetype)initWithFrame:(CGRect)frame{se...

  • C语言习题讲解

    1.模块化 例一:100以内素数---存储数组1.判断素数isprim()2.2-100存入新的数组 2.数据类型...

  • 习题讲解课(套题)

    重点突出,习题讲解才有效。 先批改,了解学生错点,再进行针对性讲解。

  • 正则表达式学习笔记

    正则表达式练习题点击这里 创建一个正则表达式 使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示: ...

  • 正则表达式(2)---匹配规则

    原创文章,转载请注明出处正则表达式(1)---语法讲解 前言 第一节讲解了正则表达式的语法结构,由于内容过多,采用...

  • 3.13

    3.13计划复盘 复习词汇01-05✔ 数学习题数列+视频讲解✔ 逻辑 1概念 习题 +2视频(1),(2)✔ 英...

  • [雪峰磁针石博客]python3快速入门教程3章文本处理1正则表

    简介 -- 后面有很多习题,可以先做题目再来看文章 正则表达式(Regular expressions REs或...

网友评论

    本文标题:25.1-正则表达式习题讲解

    本文链接:https://www.haomeiwen.com/subject/cisnmctx.html