python爬虫学习之路(3)——正则表达式(笔记)

定义

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的特定字符组成一个规则字符串,这个规则字符串用来表达对目标字符串的一种过滤逻辑。

注意

正则表达式字符串需要经过两次转义,这两次转义分别是“字符串转义”和正则转义。

常见正则字符与含义

模式 描述 模式 描述
. 匹配任意字符,除换行符 \s 匹配空白字符
* 匹配前一个字符0次或多次 \S 匹配任何非空白字符
+ 匹配前一个字符1次或多次 \d 匹配数字,等价与[0-9]
? 匹配前一个字符0次或1次 \D 匹配任何非数字,等价于[^0-9]
^ 从字符串开头匹配 \w 匹配任何字母数字,等价于[A-Za-z0-9]
$ 到字符串末尾结束 \W 匹配非字母数字,等价与[^A-Za-z0-9]
() 匹配括号内的表达式,也表示一个组 [] 用来表示以组字符

Python正则表达式的方法

re.match()方法

定义

从字符串起始位置匹配一个你定义好的模型,如果起始位置没有,则返回None

语法

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

参数解释:

  • pattern:正则模型
  • string:要匹配的字符串
  • flags:控制正则表达式的匹配方式,如是否区分大小写、多行匹配等
    match()方法只能从字符串的起始位置开始匹配。
    举例:
import re
m = re.match('love','i love python')
#返回的是none

因为在字符串’i love python’的起始位置没有’love’,也可以说因为字符串起始字符是i,而不是l,所以从一开始就是匹配不到。如果就是想用怎么办?

使用正则字符——’.’

m = re.match('.love','i love python')

re.search()方法

定义

扫描整个字符串,并且返回第一个成功匹配

import re 
m_match = re.match('com','www.nihao.com')
m_search = re.search('com','www.nihao.com')
print(m_match) --->none
print(m_search) ---><_sre.SRE_Match object; span=(10, 13), match='com'>

re.findall()方法

定义

扫描整个字符串,找到所有匹配项,并且以列表的形式返回

import re
m_findall = re.findall('[0-9]+','12345 is the first number,24680 is the second number')
print(m_findall) ---> ['12345','24680']

正则表达式学习网址

http://regex101.com/

几个正则方法:

start():返回匹配字符串的起始索引

end():返回匹配字符串的结束索引

group()<==>group(0):返回匹配的所有结果

group(1):列出第一个匹配项

正则表达式的学习还是需要通过不断的练习,应该找几个刷题的网站不断实战,否则学了就忘。

原创文章 24 获赞 45 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weilixin88/article/details/103865708