【python】网络爬虫与信息提取--正则表达式

一、正则表达式

        正则表达式是用来简洁表达一组字符串的表达式。是通用的字符串表达框架,简洁表达一组字符串的表达式,针对字符串表达“简洁”和“特征”思想的工具,判断某字符串的特征归属。

        用处:表达文本类型的特征;同时查找或替换一组字符串;匹配字符串的全部或部分。

        编译:将符合正则表达式语法的字符串转换成正则表达式特征。

        语法:正则表达式由字符和操作符构成。

        正则表达式的常用操作符:

【python】网络爬虫与信息提取--正则表达式_第1张图片

【python】网络爬虫与信息提取--正则表达式_第2张图片

        实例:

【python】网络爬虫与信息提取--正则表达式_第3张图片

        

【python】网络爬虫与信息提取--正则表达式_第4张图片

【python】网络爬虫与信息提取--正则表达式_第5张图片

二、RE库的基本使用

        RE库是python的标准库,主要用于字符串的匹配。

        调用方法:import re

        RE库使用raw string类型来表达正则表达式,表示为:r'text',例如:r'[1-9]\d{5}';也使用string类型,但是由于string类型中将斜杠理解为转义符,所以会更加繁琐,例如:'[1-9]\\d{5}'。综上,当正则表达式包含转义符时使用raw string。

        re库的主要功能函数:

【python】网络爬虫与信息提取--正则表达式_第6张图片

 re.search(pattern,string,flags=0)        

         pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

【python】网络爬虫与信息提取--正则表达式_第7张图片

        例子:我们匹配的字符串是BIT100081

【python】网络爬虫与信息提取--正则表达式_第8张图片

re.match(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

【python】网络爬虫与信息提取--正则表达式_第9张图片

        仔细看下这个错误提示,NoneType这说明现在由match函数返回的变量match它并没有一个属性叫group,也就是说这个match是空的。我们知道,这边所用的正则表达式表示了一个中国区的邮政编码,而它从后边的string类型中,从起始位置开始匹配,但我们给出的string起始位置并不是邮政编码,因此它的正则表达式匹配结果应该是空。所以我们在使用之前一定要先判断这个match是不是空的。

【python】网络爬虫与信息提取--正则表达式_第10张图片

re.findall(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

re.split(pattern,string,maxsplit=0,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        maxsplit:最大分割数,剩余部分作为最后一个元素输出

        flags:正则表达式使用时的控制标记

【python】网络爬虫与信息提取--正则表达式_第11张图片

        maxsplit=1表示只匹配第一个位置,匹配之后它将BIT分割出来

re.finditer(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

【python】网络爬虫与信息提取--正则表达式_第12张图片

re.sub(pattern,repl,string,count=0,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        repl:替换匹配字符串的字符串

        string:待匹配字符串

        count:匹配的最大替换次数

        flags:正则表达式使用时的控制标记

 

RE库的另一种等价用法

【python】网络爬虫与信息提取--正则表达式_第13张图片

        re.compile(pattern,flags=0):将正则表达式的字符串形式编译成正则表达式对象。pattern:正则表达式的字符串或原生字符串表示,flags:正则表达式使用时的控制标记。

三、RE库的match对象

        match对象就是一次匹配的结果,它包含了很多匹配的相关关系,

【python】网络爬虫与信息提取--正则表达式_第14张图片

match对象的属性 

【python】网络爬虫与信息提取--正则表达式_第15张图片

【python】网络爬虫与信息提取--正则表达式_第16张图片

        只有经过compile的正则表达式才是真正的正则表达式,如果没经过,就是compile的一种表示。

【python】网络爬虫与信息提取--正则表达式_第17张图片

四、Re库的贪婪匹配和最小匹配

        r'PY.*n'表示以PY字母开头,以N结尾,之间可以有若干个字母的字符串。

        贪婪匹配:RE库默认采用贪婪匹配,即输出匹配最长的子串。

        输出最短的子串:

        最小匹配操作符: 

【python】网络爬虫与信息提取--正则表达式_第18张图片

 

你可能感兴趣的:(python,爬虫,正则表达式)