我想搜索并匹配文本文件中的特定单词。
with open('wordlist.txt', 'r') as searchfile:
for line in searchfile:
if word in line:
print line
此代码甚至返回包含目标词的子串的单词。例如,如果单词是“there”,则搜索返回“there”,“so”,“which”等。
我希望代码只返回包含“there”的行。周期。
答案 0 :(得分:5)
将该行拆分为令牌:if word in line.split():
答案 1 :(得分:5)
import re
file = open('wordlist.txt', 'r')
for line in file.readlines():
if re.search('^there$', line, re.I):
print line
re.search
函数扫描字符串line
,如果找到第一个参数中定义的正则表达式,则返回true,忽略re.I
的大小写。 ^
字符表示“行首”,而$
字符表示“行尾”。因此,如果搜索函数匹配那里前面有行的开头,并且后面跟着行的末尾,也就是单独隔离,那么搜索函数将只返回true。
答案 2 :(得分:1)
您可以随时使用正则表达式:
import re
with open('wordlist.txt', 'r') as searchfile:
for line in searchfile:
if re.search( r'\sthere\s', line, re.M|re.I):
print line
\sthere\s
- 任何空格后跟'there'后跟任意空格re.I
- 表示不区分大小写re.M
- 在这种情况下并不重要(因为行只有1 \ n)答案 3 :(得分:0)
你应该使用正则表达式。来自Python文档的regular expression howto可能是一个很好的起点。
答案 4 :(得分:0)
查找re模块(正则表达式)。使用正则表达式进行重新搜索'那里'是你想要的。