package jb.regex; import static java.lang.System.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * java1.6测试通过 * * 正则表达式api使用范例 * * @author * */ public class Test { public static void main(String[] args) { String input = "11:59am 10:02pm"; String regex = "((1?[0-9]):([0-5][0-9]))[ap]m"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(input); /** * 输入字符串为"11:59am 10:02pm" * 模式匹配串为"((1?[0-9]):([0-5][0-9]))[ap]m" * 因此,有2次成功匹配,即find()会返回两次true */ while(m.find()){//做下一次匹配,成功匹配返回true,否则返回false int count = m.groupCount();//匹配模式中的组数,不包括0组 for(int i = 1; i <= count; i++){ out.println(m.group(i));//返回上一次匹配的第i组字符串,与下一语句等价 out.println(input.substring(m.start(i), m.end(i)));//上一次匹配第i组的开始结束下标 } out.println(m.start());//上一次匹配的开始下标,共有2次匹配 out.println(m.end());//上一次匹配的结束下标,共有2次匹配 out.println("--------------------"); } } } jdk1.6中的正则表达式相关类有: java.util.regex.Matcher java.util.regex.Pattern