正则表达式-捕获组
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexMatches
{
public static void main( String args[] ){
// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK? ";
String pattern = "(.*)(\\d+)(.*)";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
} else {
System.out.println("NO MATCH");
}
}
}
Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT300
Found value: 0
Found value: ! OK?
Found value: This order was placed for QT300
Found value: 0
Found value: ! OK?
我个人认为他这个group1-3对应的表达式分别为: .* 、 \\d+ 、.* ,这样的话m.group(1、3)输出的不该是整个字符串嘛,2输出的是3000。本人初学者望各位不吝赐教。
#java求职##学习路径#
查看10道真题和解析