java正则表达式将word中的任何双字母替换为单字母
我已经搜索了几个小时,但找不到答案,如果以前有人回答过,我道歉 我试图检查邮件中的每个单词是否有双字母,并删除多余的字母,例如,像wall或doll这样的单词将变成wal或dol。其目的是为游戏提供一个虚假的语言翻译,到目前为止,我已经识别了双字母,但不知道如何替换它们 以下是我目前的代码:java正则表达式将word中的任何双字母替换为单字母,java,regex,string,Java,Regex,String,我已经搜索了几个小时,但找不到答案,如果以前有人回答过,我道歉 我试图检查邮件中的每个单词是否有双字母,并删除多余的字母,例如,像wall或doll这样的单词将变成wal或dol。其目的是为游戏提供一个虚假的语言翻译,到目前为止,我已经识别了双字母,但不知道如何替换它们 以下是我目前的代码: public String[] removeDouble(String[] words){ Pattern pattern = Pattern.compile("(\\w)\\1+"); f
public String[] removeDouble(String[] words){
Pattern pattern = Pattern.compile("(\\w)\\1+");
for (int i = 0; i < words.length; i++){
Matcher matcher = pattern.matcher(words[i]);
if (matcher.find()){
words[i].replaceAll("what to replace with?");
}
}
return words;
}
public String[]removeDouble(String[]words){
Pattern=Pattern.compile(“(\\w)\\1+”);
for(int i=0;i
不会在位修改字符串。(Java字符串是不可变的)您需要重新分配返回值
String.replaceAll
接受两个参数
替换以下行:
words[i].replaceAll("what to replace with?");
与:
不在位修改字符串。(Java字符串是不可变的)您需要重新分配返回值
String.replaceAll
接受两个参数
替换以下行:
words[i].replaceAll("what to replace with?");
与:
如果使用反向引用,则可以在一条语句中执行整个替换操作:
for (int i = 0; i < words.length; i++)
words[i] = words[i].replaceAll("(.)\\1", "$1");
for(int i=0;i
请注意,您必须指定从(似乎)更改字符串的字符串方法返回的值,因为它们返回新字符串,而不是对字符串进行变异。如果使用反向引用,则可以在一条语句中执行整个替换操作:
for (int i = 0; i < words.length; i++)
words[i] = words[i].replaceAll("(.)\\1", "$1");
for(int i=0;i
请注意,您必须指定从(似乎)更改字符串的字符串方法返回的值,因为它们返回新字符串,而不是对字符串进行变异。这在我的代码中的其他地方很有帮助,谢谢大家!)@BrandenPatey,我推荐波西米亚的方式:
words[I]=words[I].replaceAll(“()\\1”,“替换什么?”)代码>是的,但我没有想到要将替换词指定给[I]varthis,这在我正在编写的代码中的其他地方很有帮助,非常感谢!)@BrandenPatey,我推荐波西米亚的方式:words[I]=words[I].replaceAll(“()\\1”,“替换什么?”)
是的,但我没有想到要将替换词指定给[I]varYes,$1
是对捕获组的反向引用(.)
,匹配模式也使用了对同一组的反向引用\1
,在英语中表示“任何字符后跟同一字符”这是替换所有出现的双字母还是仅替换第一个出现的双字母?@BrandenPatey它替换所有出现的双字母。要仅替换第一个,请使用一个负的前瞻replaceAll(“()\\1(?)*()\\2)”,“$1”)
,它声明在匹配后的输入中找不到双精度值是,$1
是对捕获组的反向引用()
,并且匹配模式也对同一组使用反向引用\1
,在英语中,哪个词的意思是“任何字符后跟同一个字符”,它是替换任何双字母的所有出现,还是仅替换第一次出现?@BrandenPatey它替换所有出现。要仅替换第一个,请使用否定的前瞻replaceAll(()\\1(?。*()\\2)”,“$1”)
,它声明在匹配后的输入中找不到双精度