是否有无需过多参数即可直接查找文件中文档片段的Python方法?
符合需求的极简查询方法汇总
1. Python原生字符串方法(单参数即可调用)
Python内置字符串类型本身就支持几个无额外依赖的极简查询方法:
str.find(sub):仅需传入目标子串,返回第一个匹配项的起始索引,无匹配时返回-1str.count(sub):仅需传入目标子串,返回整个字符串中匹配项的总出现次数str.partition(sub):仅需传入目标子串,直接返回(前缀, 匹配子串, 后缀)的三元组,不需要手动算索引切分
原生方法的局限是没有内置的「返回所有匹配项」接口,要实现这个需求可以用标准库的正则模块,参数同样极少。
2. 正则re.findall(双参数实现全匹配查询)
标准库re的findall方法完全符合你要的简洁语法,仅需传入匹配规则和待查询字符串两个参数即可返回所有匹配结果:
import re # 提取所有包含www的子串,写法接近你示例的findall(www) www_contents = re.findall(r'www\S+', html) # 提取所有带www的超链接,仅需一行 www_links = re.findall(r'href="(https?://www[^"]+)"', html)
3. HTML场景专用极简查询
如果专门处理HTML内容,用BeautifulSoup的find_all方法也可以做到低参数快速筛选:
from bs4 import BeautifulSoup soup = BeautifulSoup(html, "html.parser") # 筛选所有href包含www的a标签,仅需两个参数 www_links = [a["href"] for a in soup.find_all("a", href=lambda x: x and "www" in x)]
内容的提问来源于stack exchange,提问作者ronin512
相关产品推荐
相关产品推荐

