Java正则表达式为大写

所以我有一个像

2000cc车辆翻新发动机

我想把它变成

2000CC车辆翻新发动机

资本CC于2000CC。我显然不能这样做,text.replaceAll("cc","CC");因为它将所有出现的cc都替换为大写版本,因此加速器一词将成为加速器。在我的情况下,前四位将始终是四位,后跟字母cc,因此我认为可以使用正则表达式来完成。

我的问题是,在Java中,当cc跟随4位数字时如何将cc转换为CC并获得我期望的结果?

String text = text.replaceAll("[0-9]{4}[c]{2}", "?");

回答:

如果只需要转换cc为大写字母,并且固定了大小写,则可以将匹配替换为CC

Java中没有针对此的单线通用解决方案。您必须使用Matcher#appendReplacement()和完成此操作Matcher#appendTail()

String str = "Refurbished Engine for 2000cc Vehicles";

Pattern pattern = Pattern.compile("\\d{4}cc");

Matcher matcher = pattern.matcher(str);

StringBuffer result = new StringBuffer();

while (matcher.find()) {

matcher.appendReplacement(result, matcher.group().toUpperCase());

}

matcher.appendTail(result);

System.out.println(result.toString());

以上是 Java正则表达式为大写 的全部内容, 来源链接: utcz.com/qa/409465.html

回到顶部