繁体   English   中英

在字符串中选择第三个数字

[英]pick 3rd number in String

给定此字符串:“ a001212a a1212a a00333a a00334a abvbv”;

我试图通过更改正则表达式来选择第三个数字。 但我不知道。 我只允许更改正则表达式。 如果我将参数更改为matcher.group(2),但不适用于group(1),则下面的代码有效。

救命?

String nthNumber(String string) {
        Pattern pat = Pattern.compile(
                "(\\D+0*(\\d+)\\D+){3,}.*"
        );

        Matcher matcher = pat.matcher(string);
        matcher.matches();
        return matcher.group(1);
    }

您可以将第一个群组设为非捕获群组,如下所示。 然后,group(1)应该起作用。

String nthNumber(String string) {
        Pattern pat = Pattern.compile(
                "(?:\\D+0*(\\d+)\\D+){3,}.*"
        );

        Matcher matcher = pat.matcher(string);
        matcher.matches();
        return matcher.group(1);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM