万叶集 |
---|
🎉 隐约雷鸣,阴霾天空。 🎉 |
🎉 软件开发定制但盼风雨来,软件开发定制能留你在此。 🎉 |
前言:
✌ 作者简介: ✌,软件开发定制大家可以叫我 🐶哈士奇🐶 ,软件开发定制一位致力于 TFS 软件开发定制赋能的博主 ✌
🏆 CSDN软件开发定制博客专家认证、软件开发定制新星计划第三季全栈赛道 top_1 、软件开发定制华为云享专家、软件开发定制阿里云专家博主 🏆
📫 软件开发定制如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
专栏系列(点击解锁) 学习路线指引 知识定位 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 实现日常办公软件的自动化操作,节省时间、提高办公效率。 从实战的角度出发,先人一步,快速转型测试开发工程师。 更新中 更新中 更新中 更新中 更新中 更新中 记录学习及演练过程中遇到的坑,便于后来居上者 三天打鱼,不深入了解原理,只会让你成为脚本小子。 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 软件测试数据包抓包分析神器 一文学会 fiddle ,学不会倒立吃翔,稀得! 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。
文章目录
前面我们学习了正则表达式的基本用法、字符匹配、量词与组的概念,接下来就做一个综合性的练习吧。把之前学到的知识点全部过一遍,加深对正则的理解。吐槽一句 —> 说实话,正则的这玩意儿,基本上属于学完就忘,用的时候还得学系列…
🐳 匹配网址 url 的小练习
定义一个函数,判断 url 是否是一个正常的地址。
定义一个函数,只获取 url 的域名部分
import reurl_ture = "https://www.csdn.net/"url_false = "ftp://110.110.110.110:8080"def check_url(url): result = re.findall('[a-zA-z]{4,5}://\w*\.*\w+\.\w+', url) if not len(result) == 0: return 'url 是一个合法的网站地址' else: return 'url 是一个不合法的网站地址'def get_url(url): result = re.findall('https://(\w*\.*\w+\.\w+)', url) if not len(result) == 0: return result[0] else: return []if __name__ == '__main__': result_true = check_url(url_ture) print(result_true) result_false = check_url(url_false) print(result_false) result_url_01 = check_url("http://csdn.com") print(result_url_01) result_url_02 = check_url("https://www.csdn.com") print(result_url_02) get_url_true = get_url(url_ture) print(get_url_true) get_url_false = get_url(url_false) print(get_url_false)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
执行结果如下:
🐳 匹配邮箱地址的小练习
定义一个函数,获取邮箱的地址。
import reemail = "Neo@protonmail.com"def get_email(email): # result = re.findall('[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[a-zA-Z]+', email) # 这样写比较复杂,可以使用通配符 result = re.findall('.+@.+\.[a-zA-Z]', email) return resultif __name__ == '__main__': get_email = get_email(email) print(get_email) # >>> 执行结果如下:# >>> ['Neo@protonmail.com']
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
🐳 获取前端代码内容的练习
接下来做一个稍微复杂一些的练习:
定义一个函数,获取一段前端代码中双引号包裹的内容。
定义一个函数,获取该段前端代码中所有的双引号包裹的内容
import rehtml = ('<div class="s-top-nav" style="display:none;">' '</div><div class="s-center-box"></div>') # 这是前端代码,暂时不用理解是什么意思def get_html_data(html): re_g = re.compile('style="(.*?)"') # 非贪婪模式获取 style 标签的内容 # compile 函数会将这个匹配规则的字符串变成一个匹配规则的对象。接下来我们只需要调用这个对象去传入被匹配的字符串就可以匹配出来相应的信息了。 result = re_g.findall(html) return resultdef get_all_data_html(html): re_g = re.compile('="(.+?)"') result = re_g.findall(html) return resultif __name__ == '__main__': get_html_data = get_html_data(html) print(get_html_data) get_all_data_html = get_all_data_html(html) print(get_all_data_html) # >>> 执行结果如下:# >>> ['display:none;']# >>> ['s-top-nav', 'display:none;', 's-center-box']
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
通过获取前端代码标签内容的例子,我们可以看出,只要找到字符串的规律,通过这些规律去定义正则匹配的规则就可以拿到想要的信息。
OK,今天的练习就到这里了,下一章节我们会正式的学习正则表达式模块以及它的函数。正则表达式最最核心最最重要的就是匹配的相关操作,这几个章节所使用的的 findall
与 search
函数就是常用的两个函数,以及其它函数的匹配规律都是完全相同的,只不过它们返回的值会存在着不同,或者说这些函数的使用场景存在着一定的区别,但是返回的结果几乎都是相同的,所以下一章节我们几种来为大家介绍这些函数。