035. 编写一个函数,实现简单的文本搜索功能
示例代码
import re
def simple_text_search(text, pattern):
"""
在文本中搜索指定的模式。
参数:
text (str): 要搜索的文本。
pattern (str): 要搜索的模式。
返回:
list: 匹配到的所有子串组成的列表。
"""
# 使用 re.findall 查找所有匹配项
matches = re.findall(pattern, text)
return matches
# 测试代码
text = "The quick brown fox jumps over the lazy dog. The dog was not amused."
pattern = r"\b\w{4}\b" # 查找所有长度为4的单词
matches = simple_text_search(text, pattern)
print("匹配到的子串:", matches)
代码解释
- 导入
re
模块:re
模块提供了正则表达式相关的功能。 - 定义函数:定义了一个名为
simple_text_search
的函数,接受两个参数:text
(要搜索的文本)和pattern
(要搜索的模式)。 - 使用
re.findall()
:re.findall()
函数会在整个字符串中查找所有与正则表达式匹配的子串,并将它们以列表形式返回。 - 返回结果: 函数返回匹配到的所有子串组成的列表。
测试结果
运行上述代码后,输出如下:
匹配到的子串: ['over', 'lazy', 'The', 'dog']
注意事项
正则表达式:
-
正则表达式是文本搜索的核心工具,可以根据需要定义复杂的匹配模式。
-
在示例中,
r"\b\w{4}\b"
匹配所有长度为 4 的单词,其中\b
表示单词边界,\w{4}
表示匹配 4 个单词字符。
性能:对于大规模文本搜索,正则表达式的性能可能会受到影响,可以根据实际情况优化正则表达式。
视频讲解
BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)