我正在创建一个程序来过滤并检查单词是否存在于字典中。问题是如何知道这个词是否有重复的字符。
例如:
string string1 = "sorrrrrrry";
字典中不存在该字符串,但如果删除重复的r,则“抱歉”。
我正在使用hunspell检查字典中是否存在该单词。有解决方案吗?提前致谢
答案 0 :(得分:2)
对于您的情况,您可以做的是:
使用正则表达式(\w)\1+
(匹配重复的字符)并将第一次替换为$1$1
(2个重复匹配的字符)和$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
警告强> 这可以给出一些结果但它有一些限制并且可能产生意想不到的结果:
答案 1 :(得分:0)
你只能尝试通过几种模糊逻辑方法猜测哪个单词是一个,它可以匹配字典中的SOME,如果找到多个,则显示一个列表。
也许您知道,智能手机键盘如何帮助您。
这种方式或多或少是正确的(在打字期间)而不是之后。
但之后也有可能,但需要更多的努力。
答案 2 :(得分:0)
您可能希望将字典存储在Lucene.Net中,并使用其松散的匹配功能来匹配单词。