String secondOccurrence(String string) {
int index = 0;
boolean first = false;
for (char character : string.toCharArray()) {
if (String.valueOf(character).matches("[A-Z]")) {
if (!first) first = true;
else break;
}
index++;
}
return string.substring(index, index + 2);
}
2条答案
按热度按时间eit6fx6z1#
您可以从第二个大写字母开始匹配。或者,您可以匹配第二个大写字母之前的任何内容,并将其替换为空白。
以下正则表达式将匹配应删除的部分:
正则表达式解释:
^
:字符串的开始[^A-Z]*
:任意非大写字符序列[A-Z]
:大写字符[^A-Z]*
:任何非大写字符序列在Java代码中:
输出:
查看正则表达式演示here和java演示here。
pw136qt22#
我能够使用以下内容匹配第二个事件。
.*?
模式,它将尝试匹配任何字符,0或更多。然后可以使用以下方法返回该值。
或者,您可以创建一个for循环,在找到第二个匹配项时中断。