应该明确的是,在python爬虫中,正则表达式应该是分为两部分:
- re模块中各个方法的运用
- 正则表达式语法
re模块是python中特有的模块,需要练习运用;而正则表达式语法,就是pattern语句,是各种语言适用的,如Java等!
re模块方法运用
方法一
步骤:
1、 导入re模块:
import re
2、 形成模型pattern
pattern = re.compile(r' ')
r' '中字符串是正则表达式
3、 进行字符串匹配
match = re.match(pattern, str0, flag=0)
or match = pattern.match(str0)
str0是要进行匹配的字符串,match是re模块中的方法,还有search、findall等方法
4、将匹配得到的对象变换成字符串
target = match.group()
方法二
步骤:
1、match = re.match(re' ', str0, flag=0)
re' '中的空格代表的是字符串,和上面一种方法中r‘ ’代表一样的意义!
2、target= match.group()
target是匹配得到的对象变换成的字符串
可以发现的是,第二种方法和第一种的区别就是pattern,第一种pattern经过re模块的compile方法,可以持续性使用;而第二种就是属于“临时性的”!
总的来说,re模块的使用流程就是:
首先,导入re模块
其次,re模块compile方法编译正则表达式,得到pattern
再次,re模块match、search、findall等方法调用pattern和待匹配的字符串进行匹配,得到匹配成功的对象,或者匹配不成功的NoneType
最后,将匹配成功得到的对象,直接 用group方法转换成字符串(具体是什么方法得视匹配得到对象的类型而进行相应的变换)
注意:在像match、search、findall等方法调用的时候,这个主动调用的对象即可是re模块,也可是pattern对象!
编外言:匹配时要用到的方法,如match、search、findall等,可以在网上自行寻找!重点说下,search方法就是在待匹配的整个字符串中(不是从头开始什么的),寻找可以和pattern匹配成功的第一个字符串对象
附言:pattern中 r‘ ’正则字符串不总是要用r,但是r的含义要明确:不转义逗号间的字符串