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

2017-11-10 09:23 1325 22 22 分类: 软件与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条评论)

登录后参与讨论
我要评论
0
22
关闭 站长推荐上一条 /2 下一条