我有一个包含姓名,地址等的CSV数据库。
现在我将在我的Android应用程序中搜索某些内容,让我们说出地址,然后显示与之关联的其他记录 - 姓名,电话......
问题是,在CSV中,有些条目缺少字符,而是有空格代替 - 例如“G rmany Dresden”(用空格代替“e”)
不幸的是,数据库经常更新,我不能每次手动更正它。
当我搜索“德国”时,如何匹配“德国德累斯顿”,“德国德累斯顿”,“德累斯顿德语”等?
我认为必须限制不匹配的字符,所以让我们假设不超过两个 - 至少我从未见过多于
答案 0 :(得分:4)
首先想到的是Levenshtein距离(除了插入和删除之外,你正在寻找与德国距离为1的东西)。你不能直接使用正则表达式,但你可以通过编程方式生成正则表达式。
这里有另一个可能有用的答案:Levenshtein distance in regular expression