【发布时间】:2016-09-02 12:31:06
【问题描述】:
我正在尝试处理带有重复字符的字符串,以便在字典中找到正确的单词。
我必须使用的方法是找到具有 3 个或更多连续字母的单词并将它们删除为 2 个连续字母。
然后我会在字典中查找这个词是否存在。如果该词不存在,那么我必须将两个连续的字母删除为仅 1 个字母。
例子:
gooooooood -> good (this existis)
awesooooome -> awesoome (this doesn't exist) -> awesome (this exists)
aaawwwesooooooommmme -> aawwesoomme (this doesn't exist) -> awesome (this exists)
我正在使用 JAVA,并且我已经在使用这个正则表达式来获取字符串中包含 3 个或更多重复字母的单词:
Pattern p = Pattern.compile("\\b\\w*(\\w)\\1{2}\\w*");
【问题讨论】:
-
“gggoood”->“ggood”->“神”?
-
Sasha Salauyou,说得很好。在那种情况下,我想我应该总是先唱辅音,然后唱元音。 “gggoood”->“ggoood”->“好”->“好”
-
这是否相当于从 3 中删除一个,从 2 中删除一个?
-
@user1201779 “puuuppy” -> “puuuppy” -> “puuupy” -> “puupy” -> “pupy”?
-
@user1201779 如您所见,应在所有可能的组合中检查“n 次重复”->“2 次重复”->“1 次重复”的变体以获得可靠的输出。
标签: java regex replace repeat letters