正则表达式包 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