欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-03 21:09:28
本文实例讲述了java基于正则表达式实现查找匹配的文本功能。分享给大家供大家参考,具体如下: rematch.java: package rematch; i...

本文实例讲述了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
*/
    }
  }
}

运行结果如下图:

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

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
*/
    }
  }
}

运行结果如下图:

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

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

javascript正则表达式在线测试工具:

正则表达式在线生成工具:

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