一、基本的正则表达式
正则表达式用来提取爬虫中需要的公共要素
1、正则表达式符号与方法
常用符号:点号、星号、问号与括号
常用方法:findall、search、sub
.:匹配任意字符,换行符\n除外
:匹配前一个字符0次或无限次
?:匹配前一个字符0次或1次
.:贪心算法(吃尽可能的东西)
.*?:非贪心算法(像婴儿少量多餐)
():括号内的数据作为结果返回
findall:匹配所有符合规律的内容,返回包含结果的列表
search:匹配并提取第一个符合规律的内容,返回一个正则式表达对象(object)
sub:替换符合规律的内容,返回替换后的值
Python中正则表达式的库文件
import re
点号的使用:
a=‘xy123’
b=re.findall(‘x.’ , a)
print b #xy
c=re.findall(‘x…’ , a)
print c #xy1
点就是占位符,几个点就是几个符号
星号的使用:
a=‘xyxy123’
b=re.findall(‘x*’ , a)
print b #[‘x’,’’,‘x’,’’,’’,’’,’’,’’,’’]
匹配前面的字符,并查找出所有位置
问号的使用:
a=‘xy123’
b=re.findall(‘x?’ , a)
print b #[‘x’,’’,’’,’’,’’,’’,’’,’’]
*.的使用:
search_code=‘hahfajxxixxfalflsjfslfjslfjxxlovexxljsljfsxxyouxxsjflsdjflsj’
a=re.findall(‘xx.*xx’, search_code)
print(a)
#[‘xxixxfalflsjfslfjslfjxxlovexxljsljfsxxyouxx’]
.*在满足规则时,能找多少找多少
.*?的使用:
b=re.findall('xx.?xx’, search_code)
print(b)