`

正则表达式中Matcher的group(),start(),end带参

阅读更多

package cn.mingyuan.regexp.singlecharacter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupIndexAndStartEndIndexTest {
/**
* @param args
*/
public static void main(String[] args) {
   // TODO Auto-generated method stub
   String str = "Hello,World! in Java.";
   Pattern pattern = Pattern.compile("W(or)(ld!)");
   Matcher matcher = pattern.matcher(str);
   while(matcher.find()){
    System.out.println("Group 0:"+matcher.group(0));//得到第0组——找到W然后整个匹配其所在字符串,不是整个str
    System.out.println("Group 1:"+matcher.group(1));//得到第一组匹配——与(or)匹配的
    System.out.println("Group 2:"+matcher.group(2));//得到第二组匹配——与(ld!)匹配的,组也就是子表达式
    System.out.println("Start 0:"+matcher.start(0)+" End 0:"+matcher.end(0));//总匹配的索引
    System.out.println("Start 1:"+matcher.start(1)+" End 1:"+matcher.end(1));//第一组匹配的索引
    System.out.println("Start 2:"+matcher.start(2)+" End 2:"+matcher.end(2));//第二组匹配的索引
    System.out.println(str.substring(matcher.start(0),matcher.end(1)));//从总匹配开始索引到第1组匹配的结束索引之间子串——Wor
   }
}
}
程序的运行结果为:
Group 0:World!
Group 1:or
Group 2:ld!
Start 0:6 End 0:12
Start 1:7 End 1:9
Start 2:9 End 2:12
Wor
总结:其实group(),start(),end()所带的参数i就是正则表达式中的子表达式索引(第几个子表达式),由于刚开始对Java正则表达式中的组的概念不清晰,导致理解困难。当将“组”的概念与“子表达式”对应起来之后,理解matcher的group,start,end就完全没有障碍了。
group 0是获取匹配的整个字符串
group 1是第一个括号匹配的字符串, 2是第二个括号匹配的字符串 .....以此类推

分享到:
评论

相关推荐

    详解正则表达式Matcher类中group方法

    主要介绍了正则表达式Matcher类中group方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    JAVA正则表达式大全

    正则表达式之道.doc 正则表达式中的特殊字符.doc Java正则表达式详解.doc 正则表达式.ppt JAVA正则表达式--Pattern和Matcher.doc 例子

    java正则表达式验证IP地址

    在这个示例中,我们使用 Pattern.compile方法将正则表达式编译成一个Pattern对象,然后使用Matcher对象来进行匹配。正则表达式的语法是`(2[5][0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\....

    java正则表达式 过滤特殊字符的正则表达式

    Java 正则表达式是 Java 语言中的一种强大的文本处理工具,能够对字符串进行复杂的匹配、提取和替换操作。本文将详细介绍 Java 正则表达式在过滤特殊字符方面的应用。 过滤特殊字符的正则表达式 在 Java 中,使用...

    java正则表达式验证

    java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效

    JAVA正则表达式--Pattern和Matcher

    JAVA正则表达式--Pattern和Matcher 现在JDK1.4里终于有了自己的正则表达式API包,JAVA程序员可以免去找第三方提供的正则表达式库的周折了,我们现在就马上来了解一下这个SUN提供的­迟来恩物- -对我来说确实如此。...

    JAVA正则表达式Pattern和Matcher

    JAVA正则表达式Pattern和Matcher

    JAVA正则表达式 Pattern和Matcher

    JAVA正则表达式 Pattern和Matcher,详细说明正则表达式的应用

    正则表达式

    Pattern对象是正则表达式编译后在内存中的表示形式,因此,正则表达式字符串必须先编译为Pattern对象,然后再利用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    java正则表达式过滤html标签

    该方法使用java.util.regex.Pattern和java.util.regex.Matcher类来实现正则表达式的匹配。filterHtml方法将输入的字符串str与正则表达式regxpForHtml进行匹配,如果找到匹配的标签,则将其替换为空字符串。 ...

    java正则表达式Pattern,Matcher

    java正则表达式Pattern,Matcher

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    JAVA正则表达式4种常用功能

    JAVA中使用Pattern和Matcher两个类来实现正则表达式的查询功能。下面是一个简单的代码示例: ```java String str = "abc efg ABC"; String regEx = "a|f"; // 表示 a 或 f Pattern p = Pattern.compile(regEx); ...

    Java正则表达式的总结和一些小例子

    Java 正则表达式是 Java 编程语言中一个非常重要的组件,它可以用于文本显示、数据表示、查找键和许多其他目的。从 Java 1.4 开始,Java 核心 API 就引入了 java.util.regex 程序包,这是一个非常有价值的基础工具,...

    正则表达式大全案例分析案例介绍

    Pattern类用于编译正则表达式,而Matcher类则用于在文本中进行匹配。 String regex = "pattern"; String input = "string"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input);...

    java_正则表达式pattern类Matcher类_(字符串匹配)

    java_正则表达式pattern类Matcher类_(字符串匹配)

    正则表达式测试工具

    自制的正则表达式测试工具,源码如下: /** * @Project: regutil * @Title: MainFrame.java * @Package com.zhang * @Description: 正则表达式工具 * @author zhanghongbin mypczhanghongbin@gmail.com * @date ...

    java正则表达式实例

    /** * 匹配的例子: * (GC_F_BA_ACD_FDALFD_I_FALDJF) ... String group = matcher.group(); String res = group.substring(1, group.length() - 1); System.out.println(group + ":" + res); } }

    Java正则表达式:Pattern类和Matcher类

    Java正则表达式:Pattern类和Matcher类

Global site tag (gtag.js) - Google Analytics