正则表达式search 与findall的用法
发布时间:2023-05-29 17:08:00
发布人:zyh
正则表达式中,search() 和 findall() 函数是两个常用的检索函数,它们的区别在于返回的结果不同。
search() 函数在文本中查找匹配项,并返回第一个匹配项的位置和信息(即一个 Match 对象),如果没有找到,则返回 None。
例如,使用以下 Python 代码在字符串 "The quick brown fox jumps over the lazy dog" 中查找第一个匹配 "fox" 的位置和信息:
import re
text = "The quick brown fox jumps over the lazy dog"
match = re.search(r'fox', text)
if match:
print("Match found at:", match.start())
else:
print("Match not found")
输出结果为:Match found at: 16。即在字符串中从第 16 个位置开始匹配 "fox" 子字符串。
findall() 函数在文本中查找所有匹配项,并以匹配结果组成的列表形式返回,如果没有找到匹配项,则返回空列表[]。
例如,使用以下 Python 代码在字符串 "The quick brown fox jumps over the lazy dog" 中查找所有三个连续字母的单词:
import re
text = "The quick brown fox jumps over the lazy dog"
matches = re.findall(r'\b\w{3}\b', text)
if matches:
print("Matches found:", matches)
else:
print("Matches not found")
输出结果为:Matches found: ['The', 'fox', 'the', 'dog']。即找到了所有由三个字母构成的单词。
总之,如果只需要找到第一个匹配项,使用 search();如果需要找到所有匹配项,使用 findall()。
下一篇正则表达式排除特殊字符