正则表达式语法
摘自如何入门 Python 爬虫? - 知乎用户的回答 - 知乎
常用符号
.
匹配任意字符,换行符\n除外, 类似一个占位符*
匹配前一个字符0次或无限次?
匹配前一个字符0次或1次+
匹配前一个字符1次或无限次.*
贪心算法,能找到多少是多少.*?
非贪心算法\d
匹配数字[abc]
abc任意一个{m,n}
匹配前一个字符m到n次-
|
匹配左右任意一个 (.*?)
输出符合条件的,将()里结果返回
常用方法
findall
:匹配所有符合规律的内容,返回包含结果的列表;- 第一个参数是pattern,第二个是查找范围
- re.S作为findall的第三个参数,让 . 匹配\n
- 以列表返回将所有的结果
content = re.findall(r'<td valign="top">(.*?)</a>', html, re.S)
search
:匹配并提取第一个符合规律的内容,返回一个正表达式对象- group(1)表示取出()里面的
url = re.search(r'<a href="(.*?)">', each, re.S).group(1)
sub
:替换符合规律的内容,返回替换后的值- 第一个参数是pattern,第二个参数替换的值,第三个是替换变量
test_str = re.sub(u'美元|人民币|元|本金|代理|的', '', test_str)
图片来源:如何入门 Python 爬虫? - 知乎用户的回答 - 知乎