一、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/
爬取了整个页面的代码
现在我们要刷选出“游戏”的字符串