【发布时间】:2017-04-18 08:21:15
【问题描述】:
我有这种输入法
word w'ord wo'rd
我需要将单词开头和' 字符(可以存在多次)之后的两个字符都转换为大写。
我需要的输出(使用前面的例子)是
word W'Ord Wo'Rd
我尝试了一个简单的模式
s.replaceAll("(\\w)(\\w*)'(\\w)", "$1");
但我无法将组 1 和 3 转换为大写
编辑: 在我发现主要问题中的一个小错误后,我编辑了@Wiktor Stribizew 代码以包含我错过的案例。
Matcher m = Pattern.compile("(\\w)(\\w*)'(\\w)").matcher(s);
StringBuffer result = new StringBuffer();
while (m.find()) {
m.appendReplacement(result, m.group(1).toUpperCase() + m.group(2) + "'" + m.group(3).toUpperCase());
}
m.appendTail(result);
s = result.toString();
【问题讨论】:
标签: java regex uppercase apostrophe