热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python网络安全毕业设计_python网络安全编程第三天(正则表达式)

python正则表达式正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来

python 正则表达式

正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。

用法

match()

re.match()尝试从字符串的其实位置匹配一个模式匹配失败返回none

语法:re.match(pattern,string,flags=00)

pattern 匹配的正则表达式

string 要匹配的字符串

flags 标志位,控制正则表达式的匹配方式

1 importre2 #在起始位置匹配

3 print(re.match('www','www.baidu.com').span())4 #不再起始位匹配

5 print(re.match('com','www.baidu.com'))

group(num=0)匹配整个表达式的字符串

groups() 返回一个包含所有小组字符串的元组

1 #!/usr/bin/python

2 importre3 line = "Cats are smarter than dogs"

4 matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)5 ifmatchObj:6 print "matchObj.group() :", matchObj.group()7 print "matchObj.group(1) :", matchObj.group(1)8 print "matchObj.group(2) :", matchObj.group(2)9 else:10 print "No match!!

re.search()

re.search()方法扫描整个字符串并返回第一个成功的匹配

函数语法:re.search(pattern,string,flags=0)

剩下和上面的re.match用法一致

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

compile()

compile()编译正则表达式模式,返回一个对象模式

格式:re.compile(pattern,flags=0)

pattern:一个字符串形式的正则表达式

flags:可选

re.I 忽略大小写

re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境

re.M 多行模式

re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)

re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和 # 后面的注释

1 importre2 tt = "Tina is a good girl, she is cool, clever, and so on..."

3 rr = re.compile(r'\w*oo\w*')4 print(rr.findall(tt)) #查找所有包含'oo'的单词

5 执行结果如下:6 ['good', 'cool']

findall()

re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表。

格式:re.findall(pattern, string, flags=0)

eg:

1 importre2 p = re.compile(r'\d+')3 print(p.findall('xiaohua2020jintian1yue9ri'))4

5 #执行结果:['2020', '1', '9']

finditer()

搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。

split()

按照能够匹配的字串将string分割后返回列表

格式:re.split(pattern,string[,maxsplit])

eg:

1 #按照/d+来匹配分割

2 importre3 print(re.split('\d+','xiaohuadawang123huahua2020 niubi'))4 #代码执行结果:['xiaohuadawang', 'huahua', ' niubi']

sub()

使用re替换string中每一个匹配的子串后返回替换后的字符串

re.sub(pattern,repl,string,count)

eg:

1 #\s+匹配 空格部分替换成-

2 importre3 text="xiaohuadawang from yulinxueyuan xinxianquanxiehui"

4 print(re.sub(r'\s+','-',text))5 #代码执行结果:

6 #xiaohuadawang-from-yulinxueyuan-xinxianquanxiehui

subn()

返回替换次数

格式:subn(pattern, repl, string, count=0, flags=0)

正则表达式对象

start()返回匹配开始的位置

end返回匹配结束的位置

span()返回一个元组包含匹配(开始,结束)的位置

简单应用

importrequestsimportre

url='http://jandan.net/pic/MjAyMDAxMjAtMTM4#comments'headers={}

r=requests.get(url=url)

imgs=re.findall('(.*?)

',r.content)print(imgs)for img inimgs:print(img)

参考学习:

https://www.cnblogs.com/tina-python/p/5508402.html

https://www.runoob.com/python/python-reg-expressions.html



推荐阅读
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
author-avatar
374439252亮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有