【学习笔记】第二章 python安全编程基础---正则表达式

一、python正则表达式

定义:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式相匹配;

1.1RE模块:是python语言拥有全部的正则表达式功能的一个正则模块;

常见RE模块的方法:

创建模式对象compile(pattern)、在字符串中寻找模式search(pattern,string)、在字符串开始处匹配模式match(pattern,string)、

列表形式返回匹配项findll(pattern,string)、替换字符串中的匹配项sub(pattern,string)、根据模式分割字符串split(pattern,string)

a.创建模式对象compile(pattern)

在字符串中寻找模式search(pattern,string)

b.在字符串开始处匹配模式match(pattern,string)

为什么是None,match方法是指在字符串开始处匹配asd,上面的b中开始处没有asd,所以没有结果是None;

修改下如下:

c.列表形式返回匹配项findll(pattern,string)---指匹配到字符串中所有的正则,返回结果是一个元组

d.替换字符串中的匹配项sub(pattern,string),匹配到asd的字符串都替换成aaa

e.根据模式分割字符串split(pattern,string--匹配到.分割,返回的是一个列表

re.I不分大小写

^只匹配字符串的开头

.匹配任意字符

d 匹配一个数字字符,等价于【0-9】

1.2贪婪模式和非贪婪模式

正则表达式通常用于在文本中查找匹配的字符串,python里的数量词默认的是贪婪的,意思就是总是尝试匹配尽可能多的字符

非贪婪的则相反,总是尝试匹配尽可能少的字符

*?,+?,??,{m,n}?   前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成非贪婪匹配;

例如:正则表达式“ab*” 如果用于查找“abbbc”,将找到“abbb”。

而如果使用非贪婪方法“ab*?”,将找到“a”。

二、正则表达式练习

爬虫一个网站:http://www.huya.com/

爬取了整个页面的代码

现在我们要刷选出“游戏”的字符串

原文地址:https://www.cnblogs.com/tianyu2018/p/10842084.html