A 正则表达式实例教程 JAV
12/11/2008
3.7 字符串匹配的返回 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegTest { static void test() { /** * start()返回匹配到的子字符串在字符串中的索引位置. * end()返回匹配到的子字符串的最后一个字符在字符串中的索引位置. * group()返回匹配到的子字符串 */ Pattern p=Pattern.compile(\); Matcher m=p.matcher(\); while(m.find()){ System.out.println(m.start());//第一个循环返回3,第二个循环返回 9 System.out.println(m.end());//返回7,第二个循环返回14 System.out.println(m.group());//返回2233,第二个返回11222 } } public static void main(String argus[]) { test(); } } 11
A 正则表达式实例教程 JAV
12/11/2008
3.8 groupCount、group()、group(n)的用法 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegTest { static void test() { /* * 本例groupCount将返回三组a11bbb、11、bbb */ Pattern p=Pattern.compile(\); Matcher m=p.matcher(\); if(m.find()){ 的数目 int count = m.groupCount(); //返回匹配组的数目,而不是匹配字符串 for(int i = 0; i <= count; i++) System.out.println(\+ i + \+ m.group(i)); } } /* * 返回结果如下 * group 0 :a11bbb * group 1 :11 * group 2 :bbb */ public static void main(String argus[]) { test(); } } 12
A 正则表达式实例教程 JAV
12/11/2008
3.9 分割字符串(split ()方法) import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegTest { static void test() { Pattern p=Pattern.compile(\); //将所含数字去掉 String str[] = p.split(\); for (int i = 0; i < str.length; i++) { System.out.println(str[i]); } } /* * 返回结果如下 * aa * bbb * cc * gg */ public static void main(String argus[]) { test(); } } 13
A 正则表达式实例教程 JAV
12/11/2008
3.10 字符串替换(replaceAll()方法) import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegTest { static void test() { Pattern p = Pattern.compile(\); //将所含数字全部替换为XX Matcher m = p.matcher(\); String str = m.replaceAll(\); System.out.println(str); } /* * 返回结果如下 * aaXXbbbXXccXXgg */ public static void main(String argus[]) { test(); } } 14
A 正则表达式实例教程 JAV
12/11/2008
3.11 字符串替换 2(appendReplacement()方法及 appendTail()方法) import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegTest { static void test() { Pattern p = Pattern.compile(\); Matcher m = p.matcher(\); StringBuffer sb = new StringBuffer(); while (m.find()) { m.appendReplacement(sb, \);//用@@替换所有的55 } System.out.println(sb.toString());//打印aa11bbb33cc@@gg@@ m.appendTail(sb);//将最后一次替换后的字符串加上 System.out.println(sb.toString());//打印aa11bbb33cc@@gg@@yy } /* * 返回结果如下 aa11bbb33cc@@gg@@、aa11bbb33cc@@gg@@yy */ public static void main(String argus[]) { test(); } } 15
A 正则表达式实例教程 JAV
12/11/2008
4、 常用的正则表达式
//email 正确的书写格式为 username@domain static String _email = \.]\\\\w+)*\\\\.\\\\w+ ([-.]\\\\w+)*\; //电话 正确格式 012-87654321、0123-87654321、0123-7654321 static String _tel = \; //手机号码 13187654321 13587654321 static String _phone = \; //汉字 中国 static String _chinse = \; //IP 192.168.1.1 static String _ip //QQ 456789 static String _qq //邮编 210000 static String _mail = \; = \; = \; //身份证号码 15或者18位 static String _id = \;
5、 结尾
1、通过以上的学习,大家可能对正则表达式有了初步的了解和认识,大家在以后的学 习和工作中逐渐加深对 Java 正则表达式的理解,一定会在编程的过程中起到很大作用。
16