快速业务通道

JAVA中正则表达式的应用(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
ln("调用m.appendTail(sb)后sb的最终内容 是:"+ sb.toString());   } }

最终输出结果为:

第1次匹配后sb的内容是:Kevin

第2次匹配后sb的内容是:Kevin Li and Kevin

第3次匹配后sb的内容是:Kevin Li and Kevin Chan are both working in Kevin

第4次匹配后sb的内容是:Kevin Li and Kevin Chan are both working in Kevin Chen''s Kevin

调用m.appendTail(sb)后sb的最终内容是:Kevin Li and Kevin Chan are both working in Kevin Chen''s KevinSoftShop company.

看了上面这个例程是否对appendReplacement(),appendTail()两个方法的使 用更清楚呢,如果还是不太肯定最好自己动手写几行代码测试一下。

JAVA中正则表达式的应用(二)(6)

时间:2011-06-22 IBM / 陈广佳

★group()/group(int group)/groupCount():

该系列方法与我们在上篇介绍的Jakarta-ORO中的MatchResult .group()方法 类似(有关Jakarta-ORO请参考上篇的内容),都是要返回与组匹配的子串内容, 下面代码将很好解释其用法:

import java.util.regex.*; public class GroupTest{   public static void main(String[] args)              throws Exception {     Pattern p = Pattern.compile("(ca)(t)");     Matcher m = p.matcher("one cat,two cats in the yard");     StringBuffer sb = new StringBuffer();     boolean result = m.find();     System.out.println("该次查找获得匹配组的数量为: "+m.groupCount());     for(int i=1;i<=m.groupCount();i++){      System.out.println("第"+i+"组的子串内容为: "+m.group(i));     }   } }

输出为:

该次查找获得匹配组的数量为:2

第1组的子串内容为:ca

第2组的子串内容为:t

Matcher对象的其他方法因比较好理解且由于篇幅有限,请读者自己编程验证 。

一个检验Email地址的小程序:

最后我们来看一个检验Email地址的例程,该程序是用来检验一个输入的 EMAIL地址里所包含的字符是否合法,虽然这不是一个完整的EMAIL地址检验程序 ,它不能检验所有可能出现的情况,但在必要时您可以在其基础上增加所需功能 。

import java.util.regex.*;
 public class Email {
   public static void main(String[] args) throws Exception {
      String input = args[0];
      // 检测输入的 EMAIL 地址是否以 非法符号"."或"@"作为起始字符
      Pattern p = Pattern.compile("^\\.|^\\@");
      Matcher m = p.matcher(input);
      if (m.find()){
        System.err.println("EMAIL 地址不能以''.''或''@''作为起始字符");
      }
      // 检测是否以"www."为起始
      p = Pattern.compile("^www\\.");
      m = p.matcher(input);
      if (m.find()) {
        System.out.println("EMAIL 地址不能以''www.''起始");
      }
      // 检测是否包含非法字符
      p = Pattern.compile("[^A-Za-z0-9\\.\\@_\\-~#]+");
      m = p.matcher(input);
      StringBuffer sb = new StringBuffer();
      boolean result = m.find();
      boolean deletedIllegalChars = false;
      while(result) {
         // 如果找到了非法字符那么就设下标记
         deletedIllegalChars = true;
         // 如果里面包含非法字符如冒号双引号等,那么就把他们消去,加到 SB 里面
         m.appendReplacement(sb, "");
         result = m.find();
      }
     

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号