2021-05-12

一、re.findall() 方法

重点内容:

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

作用: 扫描整个string字符串,返回所有与pattern匹配的列表
参数:
pattern: 正则表达式
string: 从那个字符串中查找
flags: 匹配模式
返回:
返回string中与pattern匹配的结果列表
举例:

re.findall("\d","chuan1zhi2") >> ["1","2"]
rs = re.findall("a.+bc", "a\nbc", re.DOTALL) 
print(rs) 

rs = re.findall("a(.+)bc", "a\nbc", re.DOTALL) 
print(rs)

的结果并不一样
2021-05-12

findall() 特点:
如果正则表达式中有没有()则返回与整个正则匹配的列表
如果正则表达式中有(),则返回()中匹配的内容列表, 小括号两边东西都是负责确定提取数据所在位置.

二、正则表达式中的r原串的使用

rs = re.findall("a\nb","a\nb")
print(rs)
rs = re.findall("a\\nb","a\\nb")
print(rs) 
rs = re.findall("a\\\\nb","a\\nb") 
print(rs)
rs = re.findall(r"a\nb","a\nb") 
print(rs)

正则中使用r原始字符串, 能够忽略转义符号带来的影响
待匹配的字符串中有多少个\,r原串正则中就添加多少个\即可

一个案例:提取最新的疫情数据的json字符串

# 1. 导入相关模块
import requests
from bs4 import BeautifulSoup
import re
import json

# 2. 发送请求, 获取疫情首页内容
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()
print(home_page)

2021-05-12

上一篇:NB-IoT 智能门磁硬件搭建


下一篇:一个NB的程序员应该掌握哪些中间件~