1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # Author:woshinidaye
4 #数据解析和提取
5
6 # 正则表达式 regular expression
7 # . :匹配除换行符外的任意一个字符,..就匹配两个
8 # \w :匹配数字、子母、下划线
9 # \s :匹配任意空白符
10 # \d :匹配数字
11 # \n :匹配换行符
12 # \t :匹配制表符
13
14 # ^ :匹配字符串的开始
15 # $ :匹配字符串的结尾
16
17 # \W :匹配非数字、非子母、非下划线
18 # \S :匹配非空白符
19 # \D :匹配非数字
20 # a|b :匹配字符a或者字符b,|前后需要区分空格哟,a,b前后也需要区分
21 # () :匹配括号内的内容,也表示一个组
22 # [] :匹配字符组,[123asd],匹配123asd字符的都行,把被匹配的字符串,挨个和123asd比较
23 # [0-9,a-z]
24 # [^0-9] :匹配非0-9
25
26 # 量词
27 # * :匹配0次或者多次
28 # + :匹配一次或者更多次
29 # ? :匹配零次或者一次
30 # {n} :重复n次
31 # {n,} :重复n次或者更多次
32 # {n,m} :匹配n次到m次
33
34 # 贪婪匹配和惰性匹配
35 # .* :贪婪匹配 #尽可能多匹配
36 # .*? :惰性匹配 #?是让*尽可能的少,
37 '''
38 玩毛线游戏,玩吃鸡游戏,组队游戏,加入游戏 ====>玩.*游戏 ====> 玩毛线游戏,玩吃鸡游戏,组队游戏,加入游戏
39 玩毛线游戏,玩吃鸡游戏,组队游戏,加入游戏 ====>玩.*?游戏 ====> 玩毛线游戏 玩吃鸡游戏 #输出两个匹配结果
40 <div class="jay">周杰伦</div>,<div class="jj">林俊杰</div> =====> <div class=".*?">.*?</div>
41 '''
42 # 匹配URL:[a-zA-z]+://[^\s]*
43 # 匹配email:[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
44
45
46
47 # re解析
48
49 #bs4解析
50
51
52 #xpath解析