Android Java 正则表达式匹配所有字符,除了一个字符

6
我有一个包含姓名、地址等信息的 CSV 数据库。
现在我想在我的 Android 应用程序中搜索某些内容,比如地址,然后显示与之相关的其他记录 - 姓名、电话等。
问题是,在 CSV 中,有些条目缺少字符,而是用空格代替 - 例如“G rmany Dresden”(用空格代替“e”)。
不幸的是,数据库经常更新,我不能每次都手动更正。
当我搜索“Germany”时,如何匹配“Germany Dresden”、“G rmany Dresden”、“Germa y Dresden”等内容呢?
我想必须设置不匹配字符的限制,所以假设没有超过两个 - 至少我从未见过超过这个数的情况。

你需要更精确地定义要匹配的内容。由于 Germa yGermany 的合适匹配,那么 G 也是一个合适的匹配吗?在你的情况下,什么才是一个合适的匹配呢? - m0skit0
最近一次编辑有误 - 请查看更新版本。 - Vladimir
1个回答

4
首先想到的是Levenshtein距离(你正在寻找与德国的距离为1的东西,除了插入和删除)。不能直接使用正则表达式,但可以通过编程方式生成正则表达式。
这里还有另一个可能有用的答案:在正则表达式中使用Levenshtein距离

1
以前不知道Levenshtein距离,谢谢你提供的信息 :) - m0skit0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接