gpt4 book ai didi

java - 如何修复以下正则表达式?

转载 作者:行者123 更新时间:2023-12-01 22:15:18 26 4
gpt4 key购买 nike

我有以下代码。我使用不区分大小写的模式修饰符,因此它会找到任何出现的情况,但我想要的是替换为与模式匹配的字符,并保持大小写。我该如何解决这个问题?

    String str = "Ten tender tEens";
String substr = "te";
str = str.replaceAll("(?i)"+substr, "("+substr+")");

System.out.println( str );

期望的输出:(Te)n (t)nder (tE)ens

收到的输出:(te)n (te)nder (te)ens

最佳答案

replaceAll() 的工作方式与 matcher(string).replaceAll(exp) 相同:为了使这项工作正常进行并更好地理解,您可以破坏代码,例如:

     String str = "Ten tender tEens";
Pattern pattern=Pattern.compile("(?i)(te)");
Matcher matcher=pattern.matcher(str);

System.out.println( matcher.replaceAll("$1"));

结合使用这些步骤(效果相同):

String substr = "te";
str = str.replaceAll("(?i)("+substr+")", "($1)");

关于java - 如何修复以下正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198517/

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