我有一张单子(文字.txt)我需要一个比findline更精确的搜索方法。你知道吗
我当前的函数(显示在底部)使用findline
搜索列表。问题是:findline
不返回精确匹配,而是返回包含整个单词的第一个字符串,不管后面是否有更好的匹配。你知道吗
示例: 我输入'BEES',findline返回'BAUBEES',因为它是第一个包含子字符串('BEES')的字符串。当然,这完全破坏了功能。你知道吗
我需要的是一个函数或(最好)一个内置方法,它按字母顺序查找以获得精确匹配。因此,如果“蜜蜂”在列表中(我向你保证它是),我希望它返回“蜜蜂”。或者,如果“BAUBEES”和“BEESWAX”是列表中唯一的子字符串匹配,那么理想的函数将返回“BEESWAX”,因为“BEES”中的第二个字母是“E”而不是“A”(如“BAUBEES”)。你知道吗
def iswholeword(word):
openfile = open('/media/Gianson/Python Programs/words.txt','r')
linz = openfile.readlines()[:]
openfile.close()
hit = findline(word,linz)[:]
print 'hit', hit
if len(hit)-1 == len(word):
return True
else:
return False
说明:这将从考虑中的
\b
(单词边界)和word
构建一个正则表达式,然后在文件的每个line
中搜索它。它在行中找到以word
开头的第一个单词并返回regexp match object。你知道吗相关问题 更多 >
编程相关推荐