原创 Python爬虫学习笔记(6)——正则表达式

2017-11-10 09:23 1168 19 19 分类: 软件与OS


(一)正则表达式:

通用的字符串表达框架;

简洁表达一组字符串的表达式;

针对字符串表达“简洁”和“特征”思想的工具;

判断某字符串的特征归属;


正则表达式在文本中的常见作用:

  1. 表达文本类型的特征(病毒);
  2. 同时查找或替换一组字符串;
  3. 匹配字符串的全部或部分;


正则表达式的使用:

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


(二)正则表达式的语法


(三)正则常用的操作符

(四)正则表达式实例


(五)re库的主要功能函数

正则表达式的表示类型

(1)raw string 类型(原生字符串类型)

re库采用raw string类型表示正则表达式,表示为 r’text’

例如:大陆地区的邮政编码: r’[1-9]\d{5}’

       国内的电话号码: r’\d{3}-\d{8}|\d{4}-\d{7}’

   原生字符串类型是不包含转义符的字符串。

(2)string 类型,更加繁琐

    例如’[1-9]\\d{5}

                  ’\\d{3}-\\d{8}|\\d{4}-\\d{7}’

所以当正则表达式包含转义字符时,使用raw string




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

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象。

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

string:带匹配字符串;

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



代码



2、re.match(pattern,string,flags=0)
从一个字符串的开始位置起匹配正则表达式,返回match对象



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

搜索字符串,以列表类型返回全部能匹配的子串。


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

将一个字符串按照正则表达式匹配结果进行分割,返回列表类型。

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



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

搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。

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

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串。

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

Repl: 替换匹配字符串的字符串;

String:待匹配的字符串;

Count:匹配的最大替换数;



(六)re库的另一种用法

(七)match对象


1、match对象的属性


2、match对象的方法



(八)re库的贪婪匹配和最小匹配

Re库默认采用贪婪匹配,即输出匹配最长的字符串。

1、最小匹配操作符






文章评论0条评论)

登录后参与讨论
相关推荐阅读
LoneSurvivor 2018-02-25 08:26
C++输入/输出流(2)
1. get()函数#include<iostream>using namespace std;int main(){    char s1[80], s2[...
LoneSurvivor 2018-02-23 12:19
C++输入/输出流(1)
1. 输入/输出流类层次 C++的输入/输出流类库是用派生方法建立起的,它有2个平行的基类,streambuf和ios。其他的流类都是从这两个基类直接或间接派生的。1.1   s...
LoneSurvivor 2018-02-19 11:36
C++多态(4)——特殊运算符重载和类类型转换
1.“++”和“--”的重载     运算符“++”和“--”的重载要区分前置和后置两种形式。如果不区分前置和后置,则使用operator++()或operator—()即可,否...
LoneSurvivor 2018-02-12 11:15
C++多态(3)——运算符重载
1.     运算符重载的定义     运算符重载也是实现多态的一个重要手段。运算符重载实现的是编译时的多态,即静态多态性。C++预定义的...
LoneSurvivor 2018-02-12 10:31
C++多态(2)——纯虚函数与抽象类
   抽象类是一种特殊的类,它提供了统一的操作界面。建立抽象类是为了多态地使用抽象类的成员函数。抽象类是包含纯虚函数的类。 1.     ...
LoneSurvivor 2018-02-11 16:24
C++多态(1)
1.     多态      多态是人类思维方式的一种直接模拟,多态性是指不同对象接收到相同的消息时,根据对象类的不同而产生不同...
EE直播间
更多
我要评论
0
19
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /3 下一条