📅  最后修改于: 2023-12-03 15:33:57.661000             🧑  作者: Mango
Python中内置的字符串查找功能-findall,可以帮助程序员快速获取想要的字符串。在本文中,我们将深入介绍如何使用findall以及它的用途和限制。
findall是Python中re模块下的一个函数,用于查找字符串中符合正则表达式的所有子串,并返回一个列表。
findall(pattern, string, flags=0)
参数:
pattern:表示正则表达式的模式字符串
string:表示要匹配的字符串
flags:可选参数,用于控制正则表达式的匹配模式,是一个位掩码。常用的模式包括:
返回值:返回一个包含所有匹配字符串的列表,如果没有匹配,则返回空列表。
findall可以处理多种场景,包括:
在理解了findall的基础用法后,我们来看一些实际的应用。
import re
text = "Python is a great programming language. It is widely used in data analysis, web development, and AI."
pattern = "language"
result = re.findall(pattern, text)
print(result)#输出 ['language']
import re
text = "Please call me at 123-456-7890, or my office phone 098-765-4321."
pattern = "\d{3}-\d{3}-\d{4}"
result = re.findall(pattern, text)
print(result)#输出 ['123-456-7890', '098-765-4321']
import re
with open("logfile.txt", "r") as f:
logtext = f.read()
pattern = r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}.*"
result = re.findall(pattern, logtext)
for r in result:
print(r)
import re
import urllib.request
url = "https://www.example.com/search?q=soccer+ball&category=Sports"
response = urllib.request.urlopen(url)
htmltext = response.read().decode()
pattern = "q=(.*?)&"
result = re.findall(pattern, htmltext)
print(result)#输出 ['soccer+ball']
findall是一个强大的功能,可以帮助程序员快速截取字符串中的数据。当然,在使用时需要先掌握正则表达式的基础知识,否则可能会受到程序性能和结果准确性的影响。