Java基于正则表达式实现查找匹配的文本功能【经典实例】

 更新时间:2017年04月02日 10:53:06   作者:FrankYou  
这篇文章主要介绍了Java基于正则表达式实现查找匹配的文本功能,结合具体实例形式分析了java正则查找、字符串遍历、group分组相关操作技巧,需要的朋友可以参考下

本文实例讲述了Java基于正则表达式实现查找匹配的文本功能。分享给大家供大家参考,具体如下:

REMatch.java:

package reMatch;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * Created by Frank
 */
public class REMatch {
  public static void main(String[] args) {
    String patt = "Q[^u]\\d+\\.";
    Pattern r = Pattern.compile(patt);
    String line = "Order QT300. Now! QT400.";
    Matcher m = r.matcher(line);
    while (m.find()) {
      // group(0)或group()将会返回整个匹配的字符串(完全匹配);group(i)则会返回与分组i匹配的字符
      // 这个例子只有一个分组
      System.out.println(patt + " matches \"" + m.group(0) + "\" in \"" + line + "\"");
      System.out.println("start:" + m.start() + " end:" + m.end());
/*
输出:
 
Q[^u]\d+\. matches "QT300." in "Order QT300. Now! QT400."
start:6 end:12
Q[^u]\d+\. matches "QT400." in "Order QT300. Now! QT400."
start:18 end:24
*/
    }
  }
}

eclipse运行结果如下图:

REMatchTwoFields.java:

package reMatchTwoFields;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * Created by Frank
 */
public class REMatchTwoFields {
  public static void main(String[] args) {
    String inputLine = "Adams,John Quincy";
    Pattern r = Pattern.compile("(.*),(.*)");
    Matcher m = r.matcher(inputLine);
    if (!m.matches()) {
      throw new IllegalArgumentException("Bad Input");
    }
    // 分组0得到的是整个原字符串
    for (int i = 0; i < m.groupCount() + 1; i++) {
      System.out.println("分组" + i + ":" + m.group(i));
/*
输出:
 
分组0:Adams,John Quincy
分组1:Adams
分组2:John Quincy
*/
    }
  }
}

eclipse运行结果如下图:

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家java程序设计有所帮助。

相关文章

  • SpringBoot项目中Druid自动登录功能实现

    SpringBoot项目中Druid自动登录功能实现

    Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,这篇文章主要介绍了SpringBoot项目中Druid自动登录功能实现,需要的朋友可以参考下
    2024-08-08
  • Sentinel中三种流控模式的使用详解

    Sentinel中三种流控模式的使用详解

    这篇文章主要为大家详细介绍了Sentinel中三种流控模式(预热模式,排队等待模式和热点规则)的使用,文中的示例代码讲解详细,感兴趣的可以了解下
    2023-08-08
  • java冒泡排序算法代码

    java冒泡排序算法代码

    这篇文章介绍了java冒泡排序算法代码,有需要的朋友可以参考一下
    2013-10-10
  • JSP安全开发之XSS漏洞详解

    JSP安全开发之XSS漏洞详解

    XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
    2016-09-09
  • Java回溯法解决全排列问题流程详解

    Java回溯法解决全排列问题流程详解

    从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。这篇文章主要介绍了Java回溯法解决全排列问题
    2022-10-10
  • SpringBoot的application.yml不生效问题及解决

    SpringBoot的application.yml不生效问题及解决

    这篇文章主要介绍了SpringBoot的application.yml不生效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 在SpringBoot项目中使用JetCache缓存的详细教程

    在SpringBoot项目中使用JetCache缓存的详细教程

    Spring Boot是一个非常流行的Java开发框架,JetCache是一个基于注解的高性能缓存框架,本文将介绍如何在Spring Boot项目中使用JetCache缓存,并提供一个详细案例来说明如何配置和使用JetCache,需要的朋友可以参考下
    2024-06-06
  • Spring Cloud Gateway 服务网关的部署与使用详细讲解

    Spring Cloud Gateway 服务网关的部署与使用详细讲解

    这篇文章主要介绍了Spring Cloud Gateway 服务网关的部署与使用详细介绍,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • SpringCloud Nacos作为配置中心超详细讲解

    SpringCloud Nacos作为配置中心超详细讲解

    这篇文章主要介绍了Springcloud中的Nacos作为配置中心,本文以用户微服务为例,进行统一的配置,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil

    兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil

    今天小编就为大家分享一篇关于兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12

最新评论