可以使用正则表达式的捕获组来实现查找字符串中第二次出现的冒号后面的内容。

下面是一个示例代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String str = 'abc:123:def:456:ghi:789';
        String regex = '.*?:.*?:(.*?):';

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);

        int count = 0;
        while (matcher.find()) {
            count++;
            if (count == 2) {
                String result = matcher.group(1);
                System.out.println('第二次出现冒号后面的内容为:' + result);
                break;
            }
        }
    }
}

在上述代码中,我们使用正则表达式.*?:.*?:(.*?):来匹配字符串中第二次出现冒号后面的内容。其中:

  • .*?表示匹配任意字符0次或多次,非贪婪模式。
  • :表示匹配冒号。

通过matcher.find()方法来查找字符串中符合正则表达式的部分。在找到第二次匹配时,可以使用matcher.group(1)来获取第一个捕获组的内容,即冒号后面的内容。

输出结果为:

第二次出现冒号后面的内容为:ghi
Java 8 正则表达式获取字符串中第二次出现的冒号后面的内容

原文地址: https://www.cveoy.top/t/topic/pFf7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录