我的PHP脚本需要检查整个数据数组中的匹配项。它目前正在寻找精确的字符串匹配。我希望它不那么严格。
例如,如果数组包含字符串"Tom and Jery“,我想返回true:"Tom曾傑瑞”,"Tom &曾傑瑞“,甚至"Tom and Jery”。我找到了PHP搜索引擎的链接,它们更复杂,并不是我真正需要的。我的数据非常小,而且是动态的,所以没有索引。
我知道我可以写一个长长的正则表达式,但我非常确定我会重新发明轮子,因为我相信其他人已经这样做了。任何关于在哪里寻找或如何处理这一点的建议都将不胜感激。
编辑:为了清楚起见,我尽量避免将所有动态生成的数据输入到数据库中。
发布于 2012-06-08 03:27:12
我刚刚发现了两个函数,它们似乎可以做我想做的事情:
similar_text()
levenshtein()
这两个字符串似乎都返回一个表示两个字符串之间匹配的“紧密程度”的intiger。这两者之间的区别是我无法理解的。
我的搜索得到了this S.O. question的帮助。
发布于 2012-06-08 02:36:27
如果数据是MySQL格式的,您可以使用full text search。这很容易开发;问题是:这会不会是一个太重的解决方案?
发布于 2012-06-08 03:04:16
它可能需要一些试验和错误,但您可以这样做:
手动列出可能缺少的单词列表,如‘’,' in ',' of‘等(例如在字符串和搜索查询之间的中。如果它很低(可能最多一个或两个),则返回true.
https://stackoverflow.com/questions/10937795
复制相似问题