我正在创建一个程序来过滤并检查字典中是否存在该单词。问题是如何知道单词是否有重复字符。
例如:
string string1 = "sorrrrrrry";
该字符串在字典中不存在,但如果您删除重复的 r 它将是“对不起”。
我正在使用 hunspell 检查字典中是否存在该单词。请问有什么解决办法吗?提前致谢
对于您的情况,您可以做的是:
使用正则表达式(\w)\1+
(匹配重复字符)并将第一次替换为$1$1
(2 个重复匹配字符)和 by$1
string input = "sorrrrrrry";
Regex regex = new Regex(@"(\w)\1+");
string replacement = "$1$1";
string res = regex.Replace(input, replacement);
Console.WriteLine(res);
//will output => sorry
replacement = "$1";
res = regex.Replace(input, replacement);
Console.WriteLine(res);
//will output => sory
警告 这可能会产生一些结果,但它有一些限制并且可能会产生意想不到的结果:
您只能尝试通过几种模糊逻辑方法来猜测哪个单词是一个,它可以匹配字典中的 SOME,如果找到多个,则显示一个列表。
也许您知道,智能手机键盘如何帮助您。
这种方式或多或少是正确的方式(在打字期间)而不是之后。
但之后也是可以的,只是需要更多的努力。
您可能希望考虑将字典存储在 Lucene.Net 中并使用其松散匹配功能来匹配单词。