爬虫_正则表达式

  正则表达式(regular expression)是一种字符串匹配的模式(pattern)。它可以检查一个字符串是否含有某种子串;替换匹配的子串;提取某个字符串中匹配的子串。

3.1 常见语法

# 导入正则模块
import re

# 字符匹配
rs = re.findall('abc', 'adc')
print(rs)
rs = re.findall('a.c', 'abc')
print(rs)
rs = re.findall('a.c', 'a
c')
print(rs)
rs = re.findall('a.c', 'a.c')
print(rs)
rs = re.findall('a.c', 'a.c')
print(rs)
rs = re.findall('a.c', 'abc')
print(rs)

rs = re.findall('a[bc]d', 'abd')
print(rs)
rs = re.findall('a[bc]d', 'acd')
print(rs)

# 预定义的字符集
rs = re.findall('d', '123')
# w 匹配 下划线 字母 中文
rs = re.findall('w', 'Az123_中文$%')

#数量词
rs = re.findall('d*', '123')

3.2 findall方法

扫描整个string字符串,返回所有与pattern匹配的列表

  • pattern:正则表达式

  • string:string字符串中查找

  • flags:匹配模式

import re
# 1.findall方法,返回匹配的结果列表
rs = re.findall('d+', 'gazikel23Zihoo98')
print(rs)
# 2.findall方法中,flag参数的作用
rs = re.findall('a.bc', 'a
bc', re.DOTALL)
rs = re.findall('a.bc', 'a
bc', re.S)
print(rs)

  如果正则中没有()则返回与整个正则表达式匹配的列表。

  如果正则表达式中有()中匹配的内容列表,小括号两边的东西都是负责提取数据所在位置。

# 3.findall方法中分组的使用
rs = re.findall('a(.+)bc', 'a
bc', re.DOTALL)
# ['
']
print(rs)

3.3 r原串

正则中使用r原串,能够忽略转义符号带来的影响

将匹配的字符串中有多少个,r原串正则中就添加多少个即可。

原文地址:https://www.cnblogs.com/Gazikel/p/14911615.html