【问题标题】:android java regex match all but one characterandroid java 正则表达式匹配除一个字符外的所有字符
【发布时间】:2016-12-01 07:36:09
【问题描述】:

我有一个包含姓名、地址等的 CSV 数据库。

现在我将在我的 Android 应用程序中搜索一些东西,比如说地址,然后显示与之关联的其他记录 - 姓名、电话...

问题是,在 CSV 中,一些条目缺少字符,而是有空格 - 例如“G rany Dresden”(用空格代替“e”)

不幸的是,数据库经常更新,我无法每次手动更正它。

当我搜索“德国”时,如何匹配“Germany Dresden”、“G rmany Dresden”、“Germa y Dresden”等?

我想不匹配的字符必须有一个限制,所以我们假设不超过两个 - 至少我从未见过更多

【问题讨论】:

  • 您需要更精确地定义要匹配的内容。既然Germa y 适合匹配Germany,那么G 是否也适合匹配?在你的情况下,什么才是最合适的匹配?
  • 最后一次编辑错误 - 查看更新版本

标签: java android regex csv


【解决方案1】:

首先想到的是 Levenshtein 距离(除了插入和删除之外,您正在寻找与德国距离为 1 的东西)。您不能直接使用正则表达式来执行此操作,但您可以通过编程方式生成正则表达式。

这里还有另一个可能有用的答案:Levenshtein distance in regular expression

【讨论】:

  • 从来不知道 Levenshtein 距离,谢谢你的信息 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多