gpt4 book ai didi

java - 正则表达式:Eclipse 中的转义模式,与之前的单词不匹配

转载 作者:行者123 更新时间:2023-12-02 12:45:09 25 4
gpt4 key购买 nike

我正在 codewars.com 开发 KATA并要求将字符串中出现的任何 youuyouuu(不限于 u 的数量)替换为 your妹妹

我有工作代码并找出了以下情况的正则表达式youuuu

(you*[\s\W])

现在在 eclipse 中,我需要转义“\”,所以表达式如下:

(you*[\\s\\W])

但是,这与之前的表达式不匹配相同的单词。

这是我的代码:

public static String autocorrect(String input) {
String[] splittedInput = input.split(" ");
StringBuilder formattedString = new StringBuilder();

for (String word : splittedInput){
switch (word) {
case "u":
formattedString.append("your sister");
break;
case "you":
formattedString.append("your sister");
break;
default:
if (word.matches("(you*[\\s\\W])")){
formattedString.append("your sister");
}
else {
formattedString.append(word);
}
}
formattedString.append(" ");
}

return formattedString.toString();
}

它不再匹配诸如 youuuuuuuyouuyouu...如果它在在线正则表达式测试器中工作,为什么它在 Eclipse 中不起作用?

最佳答案

在 Java 中,当您使用 matches() 时,它会自动附加到前面的正则表达式 $^ 到末尾,就像你想匹配整个单词。您可以使用 MatcherPattern 来更好地解决这个问题。

关于java - 正则表达式:Eclipse 中的转义模式,与之前的单词不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44796792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com