regex的java子串

时间:2012-05-05 16:36:52

标签: java regex substring

我有以下字符串" Class(102)(401)"和#34;班级(401)"我想找到正则表达式找到子串,它始终返回我的价值' Class'超出"类(102)(401)"或" Class(102)"

以下是我的代码

Pattern MY_PATTERN = Pattern.compile(".^(\\(\\d+\\))");
    Matcher mat = MY_PATTERN.matcher("Class (102) (401)");
    while (mat.find()){
        System.out.println(mat.group());
    }

3 个答案:

答案 0 :(得分:0)

如果你想知道字符串中是否包含'Class',为什么不使用String.contains(“Class”)?

答案 1 :(得分:0)

我不知道这可能有用 - 但是如果你需要它,如果你使用这个正则表达式,'class'将在第一个匹配组中:

(Class)(?:\s*\(\d+\))+

如果您需要捕获其他单词后跟相同的模式,请使用:

(.*?)(?:\s*\(\d+\))+

如果是你所追求的数字而不是字符串'class',请使用此数字,匹配也将在捕获组中:

Class(?:\s*\(\(d+)\))+

你需要逃避反斜杠,为了便于阅读,我把它留下了。

答案 2 :(得分:0)

您可以使用String#replaceAll来获得您想要的内容:

String substr = str.replaceAll("^([\\S]+).*$", "$1");