正则表达式-捕获组

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? 

我个人认为他这个group1-3对应的表达式分别为: .* 、 \\d+ 、.*  ,这样的话m.group(1、3)输出的不该是整个字符串嘛,2输出的是3000。本人初学者望各位不吝赐教。
#java求职##学习路径#
全部评论
我就最讨厌正则表达式
点赞 回复 分享
发布于 2022-03-14 11:39

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务