Date
Dec. 31st, 2024
 
2024年 12月 1日

Post: Java 与 RegEx 浅析 002: 小试 java.util.regex

Java 与 RegEx 浅析 002: 小试 java.util.regex

Published 12:09 Sep 19, 2013.

Created by @ezra. Categorized in #Programming, and tagged as #Java.

Source format: Markdown

Table of Content

正则表达式包 java.util.regex 的使用十分简单,它的功能由下列内容组成:

  • java.util.regex.Pattern

    • Pattern 对象就是编译好的正则表达式,它可以应用于任意多的字符串
  • java.util.regex.Matcher

    • Matcher 对象对应单独的实例,它表示将正则表达式应用到某个具体的目标字符串上
  • 接口 java.util.regex.MatchResult

    • MatchResult 是 Java 5.0 之后的新特性,它包含了成功匹配到的数据,这些数据可以在下一次匹配前从 Matcher 本身获取,也可以提出作为 MatchResult 保存
  • 异常 java.util.regex.PatternSyntaxException

    • 当你使用的正则表达式格式不正确时,会产生 PatternSyntaxException 异常,它继承自 java.lang.IllegalArgumentException,是一个 Unchecked Exception

大多数时候你可能只会用到前面的两个类,我们来看一个完整的匹配示例:

improt java.util.regex.*;
public class Simple {
    public static void main(String[] args) {
        String sourceText = "My 1st test String";
        String regexText = "\\d+\\w+";
        Pattern p = Pattern.complie(regexText);
        Matcher m = p.matcher(sourceText);

        if (m.find) {
            String matchedText = m.group();
            int matchedFrom = m.start();
            int matchedTo = m.end();
            System.out.println("matched [" + matchedText + "]" + "from" + matchedFrom + "to" + marchedTo);
        } else {
            System.out.println("Didn't match");
        }
    }
}

输出结果是:

matched [1st] from 3 to 6
Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询