正则表达式-捕获组
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求职##学习路径#