Python爬虫-正则表达式

正则表达式

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

原子:

基本组成单位

普通的字符

非打印支付

通用字符



普通的字符

>>> 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爬虫-正则表达式

时间: 2024-10-07 02:48:53

Python爬虫-正则表达式的相关文章

Python 爬虫-正则表达式

2017-07-27 13:52:08  一.正则表达式的概念 (1)正则表达式是用来简洁表达一组字符串的表达式,最主要应用在字符串匹配中. 正则表达式是用来简洁表达一组字符串的表达式 正则表达式是一种通用的字符串表达框架 正则表达式是一种针对字符串表达"简洁"和"特征"思想的工具 正则表达式可以用来判断某字符串的特征归属 (2)正则表达式是一个字符串,通过编译将符合正则表达式语法的字符串转换成正则表达式特征. 二.正则表达式的语法 正则表达式语法由字符和操作符构成

Python爬虫-正则表达式基础

import re #常规匹配 content = 'Hello 1234567 World_This is a Regex Demo' #result = re.match('^Hello\s\d\d\d\s\d{4}\s\w{10}.*Demo$',content) #print(result.group()) #print(result.span()) #泛匹配 #result = re.match("^Hello.*Demo$",content) #print(result)

python爬虫正则表达式

1.正则表达式概念:用来简洁表达字符串的方式.(regular expression     regex     RE)   通用的字符串框架   针对字符串表达"简洁"和"特征"思想的工具. 2.正则表达式的语法: 2.1."." :表示任何单个字符 2.2."[]" :字符集,对单个字符给出取值范围 [abc]表示a.b.c,[a-z]表示a到z单个字符 2.3."[^]" :非字符集 [^abc]表示

数据之路 - Python爬虫 - 正则表达式

一.常用匹配模式 \w 匹配字母数字及下划线 \W 匹配f非字母数字下划线 \s 匹配任意空白字符,等价于[\t\n\r\f] \S 匹配任意非空字符 \d 匹配任意数字 \D 匹配任意非数字 \A 匹配字符串开始 \Z 匹配字符串结束,如果存在换行,只匹配换行前的结束字符串 \z 匹配字符串结束 \G 匹配最后匹配完成的位置 \n 匹配一个换行符 \t 匹配一个制表符 ^ 匹配字符串的开头 $ 匹配字符串的末尾 . 匹配任意字符,除了换行符,re.DOTALL标记被指定时,则可以匹配包括换行符

Python爬虫入门七之正则表达式

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我

转 Python爬虫入门七之正则表达式

静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了. 正则表达式的大致匹配过程是:1.依次拿出表达式和文本中的字符比较,2.如果每一个

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

Python爬虫入门之正则表达式

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我

python爬虫(四)--python正则表达式

在爬虫的学习过程中,又一个你必须要掌握的知识点就是正则表达式 爬虫程序需要爬取你需要的东西,那么就对爬取的结果进行筛选,正则表达式就起到这样的作用 如果你学过任何一门语言,相信你都会接触正则表达式.并且正则表达式大多相同. 不管怎样,就像开头说的那样,因为这是爬虫基础教程.所以这篇文章要详细的说一下python的 正则表达式.开始进入正题吧. 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正