2024-06-01 08:31:32 发布
网友
我想检查某个术语是否包含在文档中。然而,有时,这个词有几种形式(复数、过去式等)。
'Hello Worlds' 'Hellos Worlds' 'Jello World' 'Hello Worlded'
我如何创建一个搜索词来查找所有实例,如
'*ello* World*'
其中星星是一张通配符,不一定要包含在单词中。
我找到了一个fnmatch模块的文档,但是我看不出它如何帮助我搜索一个文档。
我通常会选择正则表达式,但如果出于某种原因您希望坚持使用通配符格式,则可以执行以下操作:
from fnmatch import fnmatch pattern = '*ello* World*' with open('sample.txt') as file: for line in f: if fnmatch(line, pattern): print(line)
使用正则表达式并在文件中循环:
import re f=open('test.file.here', 'r') pattern = re.compile("^[^\s]*ello[^\s]*\sWorld[^\s]*$") for line in f: if pattern.match(line): print line, f.close()
您描述的*语法称为globbing。它不适用于文档,只适用于文件和目录。正如其他人所指出的,正则表达式就是答案。
我通常会选择正则表达式,但如果出于某种原因您希望坚持使用通配符格式,则可以执行以下操作:
使用正则表达式并在文件中循环:
您描述的*语法称为globbing。它不适用于文档,只适用于文件和目录。正如其他人所指出的,正则表达式就是答案。
相关问题 更多 >
编程相关推荐