Python爬虫-正则表达式

2月 23, 2020

正则表达式规则

普通字符 正则匹配
\n 匹配换行符
\t 匹配制表符
\w 匹配字母,数字,下划线
\W 与上面相反
\d 匹配十进制数字
\D 与上面相反
\s 匹配空白字符
\S 与上面相反
[ab89x] 匹配ab89x中任意一个
[^ab89x] 与上面相反
. 匹配除换行外任意一个字符
^ 匹配开始位置
$ 匹配结束位置
* 前一个字符出现0\1\多次
? 前一个字符出现0\1
+ 前一个字符出现1\多次
{n} 前一个字符恰好出现n次
{n,} 前一个字符至少出现n次
{n,m} 前一个字符至少n次最好m次
| 模式选择符或
() 想要提取的部分
*? 懒惰模式(精准匹配)
+? 同上

语法

  • 导入集成包 import re
  • re.S | 使其匹配多行
  • re.l | 使其匹配忽略大小写
  • re.compile('',re.S或者re.l).findall('')

p.s

import re
string = 'a89cdefg'
pat = '.c(.*?)f'
data = re.compile(pat).findall(string)
print(data)

>>> ['de']