当前位置: 首页 > 编程笔记 >

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

汝弘深
2023-03-14
本文向大家介绍Java基于正则表达式实现查找匹配的文本功能【经典实例】,包括了Java基于正则表达式实现查找匹配的文本功能【经典实例】的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Java基于正则表达式实现的替换匹配文本功能【经典实例】,包括了Java基于正则表达式实现的替换匹配文本功能【经典实例】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java基于正则表达式实现的替换匹配文本功能。分享给大家供大家参考,具体如下: eclipse运行代码效果图如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表

  • 本文向大家介绍Java正则表达式实现在文本中匹配查找换行符的方法【经典实例】,包括了Java正则表达式实现在文本中匹配查找换行符的方法【经典实例】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java正则表达式实现在文本中匹配查找换行符的方法。分享给大家供大家参考,具体如下: 默认情况下,正则表达式 ^ 和 $ 忽略行结束符,仅分别与整个输入序列的开头和结尾匹配。如果激活 MULTILI

  • 本文向大家介绍正则表达式实现最小匹配功能的方法,包括了正则表达式实现最小匹配功能的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了正则表达式实现最小匹配功能的方法。分享给大家供大家参考,具体如下: 正则表达式默认情况下实现的是最大化匹配,这在有些情况下是非常不愿意出现的,比如下面这段代码: # starting IndiaInventoryAPP.exe" ~~DisplayVaria

  • 本文向大家介绍PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】,包括了PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP preg_match实现正则表达式匹配功能。分享给大家供大家参考,具体如下: preg_match — 执行一个正则表达式匹配 preg_match ( $patte

  • 我有一个多行文本,我想从这里匹配单词“Description Amount”和以逗号作为分隔符的随机数字之间的文本。 示例输入: 预期产出: 输入示例: 预期产出: 输入包含多个换行符的变量。我使用了以下正则表达式: 但还需要改进。谢谢你。

  • 问题内容: 当字符串以数字开头时,我需要匹配,然后是一个点,然后是一个空格和1个或多个大写字符。匹配必须发生在字符串的开头。我有以下字符串。 我尝试过的正则表达式是: 它不匹配。一个有效的正则表达式将对这个问题有什么作用? 问题答案: (对不起,我先前的错误。大脑现在坚定地投入了。嗯,也许。) 这有效: 分解: =字符串开头 =一个或多个数字 (之所以转义,是因为它在字符串中,因此) =文字(或者