我有以下字符串" 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());
}
答案 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");