用于在括号之间提取文本的模式
如何从模式匹配或任何内容中提取字符串并使用模式匹配。例如,如果文本是"("
")"
“你好(Java)”
那么如何只得到?"Java"
如何从模式匹配或任何内容中提取字符串并使用模式匹配。例如,如果文本是"("
")"
“你好(Java)”
那么如何只得到?"Java"
试试这个:
String x = "Hello (Java)";
Matcher m = Pattern.compile("\\((.*?)\\)").matcher(x);
while (m.find()) {
System.out.println(m.group(1));
}
或
String str = "Hello (Java)";
String answer = str.substring(str.indexOf("(")+1, str.indexOf(")"));
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("\\((.*?)\\)");
Matcher regexMatcher = regex.matcher("Hello This is (Java) Not (.NET)");
while (regexMatcher.find()) {//Finds Matching Pattern in String
matchList.add(regexMatcher.group(1));//Fetching Group from String
}
for(String str:matchList) {
System.out.println(str);
}
输出
Java
.NET
这是什么意思?\\((.+?)\\)
这个正则表达式模式将从它将匹配开始,因为它是在regExp中保留的,所以我们需要转义这个字符,同样的事情,并且将匹配任何字符零或更多时间,此外,我们认为我们正在寻找的组。\\(
(
\\)
(.*?)
()