【发布时间】:2010-11-05 15:08:11
【问题描述】:
将一个模式与一组字符串逐个进行比较,同时评估模式与每个字符串匹配的数量,最好的方法是什么?在我对正则表达式的有限经验中,使用正则表达式将字符串与模式匹配似乎是一个非常二元的操作......无论模式多么复杂,最终,它要么匹配要么不匹配。我正在寻找更强大的功能,而不仅仅是匹配。有没有与此相关的好的技术或算法?
这是一个例子:
假设我有一个模式foo bar,我想从以下字符串中找到最匹配它的字符串:
foo for
foo bax
foo buo
fxx bar
现在,这些实际上都没有匹配模式,但是哪个不匹配是最接近的匹配?在这种情况下,foo bax 将是最佳选择,因为它匹配 7 个字符中的 6 个。
抱歉,如果这是一个重复的问题,当我查看这个问题是否已经存在时,我真的不知道要搜索什么。
【问题讨论】:
-
我不确定我是否理解你的问题,正如你所说的,它要么符合模式,要么不符合,你所说的数量是什么意思,比如有多少个字符匹配?
-
好问题;我也很好奇。
-
是的,我想我正在寻找一种与正则表达式匹配不同的技术。对造成的误解表示歉意,换个问题...
-
@W_P,你的意思是像soundex 和/或Levenshtein distance 这样的模糊字符串算法,但是你有一个模式和一个字符串,而不是两个字符串?还是我走开了? :)
-
hmmm 还在看它,但我的第一印象是 Levenshtein 距离是我正在寻找的......我已经用我正在谈论的例子编辑了这个问题。
标签: language-agnostic string-matching levenshtein-distance