java字符之间的java正则表达式

时间:2015-10-20 18:03:40

标签: java

我的Java代码:

 String subjectString = "BYWW4 AterMux TP 46[_221]  \n"
                + "FHTTY TC AterMux TP 9  \n"
                + "TUI_OO AterMux TP 2[_225]  \n"
                + "F-UYRE TC AterMux TP 2  \n"
                + "RRRDSA AterMux TP 31[_256]  ";

        String textStr[] = subjectString.split("\n");
        for (int i = 0; i < textStr.length; i++) {
            String ResultString = null;
            try {
                Pattern regex = Pattern.compile("????????");
                Matcher regexMatcher = regex.matcher(textStr[i]);
                if (regexMatcher.find()) {
                    ResultString = regexMatcher.group();
                    System.out.println(ResultString); /// 
                }
            } catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
            }
        }

我希望程序在此代码后的单词(TP)和之前([)之后打印值,以获得如下结果:
46
9
2
2
31

1 个答案:

答案 0 :(得分:0)

您可以使用regexp TP\s*(\d+)\[(Java代码中的双反斜杠)并使用regexMatcher.group(1)获取值。 但是你不应该在循环的每次迭代中重新创建它,你应该每个regexp使用Pattern.compile一次。