Python正则、re模块

  1. 正则的概念
  2. findall        match        search  方法
  3. 元字符的用法和作用

正则表达式概念

正则表达式是对字符串操作的一种逻辑公式,就是对字符串的一种过滤

可以判断是否匹配给定的格式

可以按指定格式从字符串中提取信息

re模块

findall方法

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表

Python正则、re模块

Python正则、re模块

match方法

从字符串的起始位置匹配

匹配成功,返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的是空

只能匹配到一个      group()  提取匹配到的内容    span()  提取匹配到的字符下标

Python正则、re模块

Python正则、re模块

search方法

扫描整个字符串,匹配成功,返回的是一个匹配对象(这个对象包含了我们匹配的信息)

search也只能匹配到一个,找到符合规则的就返回,不会一直往后找

Python正则、re模块

Python正则、re模块

re.match 与 re.search的区别

re.match:从字符串的开始位置找,如果字符串开始不符合正则表达式,则匹配失败,返回空

re.search:匹配整个字符串,如果一直找不到则返回空

sub方法

把匹配到的所有字符串都替换,没找到就不进行操作,返回原字符串

Python正则、re模块

Python正则、re模块

有一个参数为re.S,它表示 “.” 的作用扩展到整个字符串,包括“\n”

Python正则、re模块

Python正则、re模块

元字符

单字符匹配

匹配任意1个字符(除了\n )           [ ] 匹配[ ]中列举的字符

\d 匹配数字,即0-9             \D 匹配非数字,即不是数字

\s 匹配空白,即空格,tab键          \S 匹配非空白

\w 匹配单词字符,即a-z、A-Z、 0-9、_    \W 匹配非单词字符

代表数量的元字符

*                匹配前一个字符出现0次或者无限次,即可有可无  

             匹配前一一个字符出现1次或者无限次,即至少有1次  

?               匹配前一个字符出现1次或者0次,即要么有1次,要么没有

{m}              匹配前一个字符出现m次

{m,}             匹配前一个字符至少出现m次

{m,n}           匹配前一个字符出现从m到n次

表示边界的元字符

^ 匹配字符串开头

$ 匹配字符串结尾

\b 匹配一个单词的边界

\B 匹配非单词边界

分组匹配

|     匹配左右任意一个表达式

(ab)  将括号中字符作为一个分组

贪婪与非贪婪

正则默认都是用贪婪模式去匹配数据的,就是尽可能多的匹配符合要求的数据

在非贪婪模式下,始终找最短匹配

加个  ?  就是 非贪婪模式

Python正则、re模块

Python正则、re模块

上一篇:$(document)和$(window)各是什么意思?


下一篇:Python爬虫之urllib模块1