所谓的python web爬虫基础

import re

正则表达式:

常用的符号:点号 问号 星号 和小括号
.:匹配任意字符,换行符\n除外
——点号可以理解为占位符,一个点号匹配一个字符。
*:匹配前一个字符0次或无限次
?:匹配前一个字符0次或者1次
.*:贪心算法(尽可能多的匹配到数据)
.*?:非贪心算法(尽可能多的找到满足条件的组合)
():括号内的数据将会作为结果返回。

常用的方法:findall,Search,Sub
findall:匹配所有符合规律的内容
Search:匹配并提出第一个符合规律的内容,返回一个正则表达式对象
Sub:替换符合规律的内容,返回替换后的值


万能表达式:
(.*?)


多行表达式的匹配
re.S

s='''sdfhajkdxxluhuanxx
   lsdhfxxwangpiaoxxsjdkf'''
sub=re,findall('xx(.*?)xx',s,re.S)

//findall和search的区别
sub= re.search('xx(.*?)xxdsfaxx(.*?)xx',s,re.S).group(1)
sub= re.findall('xx(.*?)xxdsfaxx(.*?)xx',s,re.S)
print sub[0][1]  //在字符串中存在多行满足匹配规则。

小贴士:
匹配数字
a=sdfasd123415ksadfj2345kdsafj
b=re.findall('(\d+)',a)

匹配原则:
findall 和search匹配使用
先抓大再抓小

你可能感兴趣的:(所谓的python web爬虫基础)