码迷,mamicode.com
首页 > 编程语言 > 详细

Python爬虫-正则表达式

时间:2017-09-18 17:17:41      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:元字符   组成   one   ring   python爬虫   nfs   贪婪   abc   重复   

正则表达式

只提取关注的数据,进行数据赛选

原子:

基本组成单位

普通的字符

非打印支付

通用字符


 

普通的字符

>>> import re
>>> pat="yue"
>>> string="http://yum.iqianyue.com"
>>> rst1=re.search(pat,string)
>>> print(rst1)
<_sre.SRE_Match object; span=(16, 19), match=yue>
>>> pat2="abc"
>>> rst2=re.search(pat2,string)
>>> print(rst2)
None
>>>

非打印字符()


 

通用字符

|w                                    |W处理字符下滑线任意的字符

|d 十进位数                    |D

|s 空白字符                    |S

>>> pat4="\w\dpython\w"
>>> string"hahahhadhsfd10pythondasdsadas"
SyntaxError: invalid syntax
>>> string="hahahhadhsfd10pythondasdsadas"
>>> rst5=re.search (pat4,string)
>>> print(rst5)
<_sre.SRE_Match object; span=(12, 21), match=10pythond>
>>> 

原子表 【jsz】表示 只有一位的匹配出来

>>> pat="pyth[jsz]n"
>>> string = "hsdsdfjsdzpythsdfdfda"
>>> rst6=re.search (pat,string)
>>> print(rst6)
None

元字符

特殊含义的字符,比如重复前边的n字符

.匹配任意字符

^匹配

$匹配结束

*匹配一次 零次 或者多次

?匹配零次或者一次

{n}

{n,}

s{4,7} 表示 s 最少出现4次 最多出现7次

 

t{3}前面的原子出现t,3次

()

import re
pat=".python..."
string="dfdsfsfpythonfsdfdsfds"
rst=re.search (pat,string)
print(rst)
。除了换行符任意字符
pat1="python|php"
string2="abcdphp5454pythonfdfd"
rst2=re.search(pat1,string2)
print(rst2)

模式修正符

在不改变正则表达式的情况下,实则想要的结果

忽略大小写L M L U S

pat3="python"
pat4="python"
string3="dfdsfasPythonfafdfa"
rst4=re.search(pat3,string3)
print(rst4)
rst5=re.search(pat3,string,re.L)
print(rst5)
<_sre.SRE_Match object; span=(7, 13), match=‘python‘>

贪婪模式和懒惰模式

贪婪尽可能多的匹配

懒惰尽可能少的匹配

import re

string="dfdsfsfpythonfsdfdsfdsfdfdfdfy"
pat5="p.*y"#贪婪模式
pat6="p.*?y"#懒惰模式
rst5=re.search(pat5,string)
print(rst5)
rst6=re.search(pat6,string)
print(rst6)

<_sre.SRE_Match object; span=(7, 30), match=pythonfsdfdsfdsfdfdfdfy>
<_sre.SRE_Match object; span=(7, 9), match=py>
>>> 

正则表达式函数

re.match() :从头开始搜索

re.search(): 字符串中搜索 左 到 右 

全局匹配函数:re.compile(pat1).findall(string)

re.sub()

import re

pat="p.*?y"
string="pdasdaysdfdsfdsfpdadadasydfsfdfsf"
rst=re.compile(pat).findall(string)
print(rst)
[pdasday, pdadadasy]
>>> 

 

Python爬虫-正则表达式

标签:元字符   组成   one   ring   python爬虫   nfs   贪婪   abc   重复   

原文地址:http://www.cnblogs.com/duxiao/p/7543646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!