Java正则表达式跳过某些字符,这些字符只匹配一次数字,并带有间歇性句点

Java正则表达式跳过某些字符,这些字符只匹配一次数字,并带有间歇性句点,java,regex,Java,Regex,我的数据如下所示: 0.1.2 [2.2.0, 2.2.1, 2.2.2, 2.2.3] 我想写一个测试,可以识别第一行中的最后一个数字,即2,然后使用它匹配第二行中每个值的第二个数字 因此,从第一行它将抓取2,然后在第二行它将抓取2 我一直在尝试使用编写一些用于此任务的正则表达式,我尝试了类似于[^\d\.\d\.]\d。。。但是没有用 有人知道如何使用正则表达式从字符串0.1.2中提取2,从2.2.0和2.2.1等字符串中提取中间数字吗?您可以使用两个正则表达式,一个从第一行获取2,另一个

我的数据如下所示:

0.1.2
[2.2.0, 2.2.1, 2.2.2, 2.2.3]
我想写一个测试,可以识别第一行中的最后一个数字,即
2
,然后使用它匹配第二行中每个值的第二个数字

因此,从第一行它将抓取
2
,然后在第二行它将抓取
2

我一直在尝试使用编写一些用于此任务的正则表达式,我尝试了类似于
[^\d\.\d\.]\d
。。。但是没有用


有人知道如何使用正则表达式从字符串
0.1.2
中提取
2
,从
2.2.0
2.2.1
等字符串中提取中间数字吗?

您可以使用两个正则表达式,一个从第一行获取
2
,另一个从第二行获取所有三元组

String s = "0.1.2\n" +
        "[2.2.0, 2.2.1, 2.2.2, 2.2.3]";
Matcher m = Pattern.compile("\\d\\.\\d\\.(\\d)\n(.+)").matcher(s);
if (m.find()) {
    int lastDigit = Integer.parseInt(m.group(1)); // find the last digit on first line
    String secondLine = m.group(2);

    // now find triplets on the second line
    m = Pattern.compile("(\\d)\\.(\\d)\\.(\\d)").matcher(secondLine);
    while (m.find()) {

        // here I printed the digits out. You can do whatever you like with "m.group(lastDigit)"
        System.out.println(m.group(lastDigit));
    }
}

第一行和第二行都是个位数吗?是的,它的格式总是
X.X.X
,其中
X
是一个数字,是的-我总是尝试匹配一个位数