【发布时间】:2013-09-09 14:01:02
【问题描述】:
如何检测错字,但仅限于特定短语。另一种思考方式是如何检测某个正则表达式的拼写错误。
例如,我不想要一个通用的拼写错误查找器,我在上面找到了多个资源。我不想要一个通用的拼写检查器,我再次找到了多个资源。
我如何为一个相对恒定的值编写一个错字检查器......比如说:
超级秘密 13-12345
它应该总是说“Super Secret NN-NNNNN”(N 表示任何 0-9 数字)。
它会将以下内容标记为“错别字”:
- 超级秘密 13-12345
- 超级秘密1312345
- Sper Scret 13-123456
- Spuer 秘密 13-12345
- 超级秘密
- 13-12345
它会不将以下内容标记为“错别字”:
- 超级秘密13-12345
- 任何其他随机词
- 超人飞越丛林
我最担心额外的字符泄漏、转置字符或不遵循 NN-NNNNN 格式的数字。
我觉得这是一个可以回答的问题,但我可能只是没有用正确的词问 Google 或 SO。
我正在用 .NET 编写它,但显然可以移植任何东西。
【问题讨论】:
-
或者看看'Levenshtein distance':en.wikipedia.org/wiki/Levenshtein_distance
-
我不认为这可以用正则表达式来完成,因为正则表达式会找到模式但可能犯的错误不遵循任何模式,它们是随机的。
标签: .net regex algorithm spell-checking phrase