我想知道如何继续这个任务,以这个字符串为例“thingsandstuff”。
我如何从这个字符串中生成所有可能的字符串,以便根据英语词典单独查找它们?
目标是在不包含空格的字符串中找到有效的英文单词。
谢谢
请您参考如下方法:
另一种可能性是反过来,不是从字符串生成子字符串,而是获取所有候选词并将它们与您的字符串进行匹配。
您可以将原始字符串中单词的索引对作为结果(开始,结束)存储。
这可以在正则表达式中轻松完成,或者,如果性能不够,则使用 str.find(),或者如果性能不够,则使用更复杂的字典索引方案或关于什么可以匹配和不能匹配的智能(参见 Gregg's answer的想法)
这里是我的意思的示例
candidate = "thingsandstuffmydarlingpretty"
words = file('/usr/share/dict/words').read()
#This generator calls find twice, it should be rewritten as a normal loop
generate_matches = ((candidate.find(word),word) for word in words.split('\n')
if candidate.find(word) != -1 and word != '')
for match in generate_matches:
print "Found %s at (%d,%d)" % (match[1],match[0],match[0] + len(match[1]))
