正则表达是用于字符串的替换.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正则表达是用于字符串的替换

Java中使用正则表达式实现字符串匹配巧巧电脑网络?2005-12-25?????收藏此文?大?中?小分享到QQ空间人人网开心网豆瓣新浪微博腾讯微博更多0java的java.util.regex包按照面向对象的思路,把希望查询的字符串如is、thing或ting封装成一个对象,以这个对象作为模板去匹配一段文字,就更加自然了。思路清楚了。黑暗岁月  有一个String,如何查询其中是否有y和f字符?最黑暗的办法就是:?  程序1:我知道if、for语句和charAt()啊。class Test{ public static void main(String args[]) {  String str=For my money, the important thing +about the meeting was bridge-building;  char x=y;  char y=f;  boolean result=false;  for(int i=0;i<str.length;i++){   char z=str.charAt(i); //System.out.println(z);   if(x==z||y==z) {    result=true;    break;   }   else result=false;  }?  System.out.println(result); }}  好像很直观,但这种方式难以应付复杂的工作。如查询一段文字中,是否有is?是否有thing或ting等。这是一个讨厌的工作。  Java的java.util.regex包  按照面向对象的思路,把希望查询的字符串如is、thing或ting封装成一个对象,以这个对象作为模板去匹配一段文字,就更加自然了。作为模板的那个东西就是下面要讨论的正则表达式。先不考虑那么复杂,看一个例子: 程序2:不懂。先看看可以吧?import?java.util.regex.*;class Regex1{ public static void main(String args[]) {  String str=For my money, the important thing +about the meeting was bridge-building;  String regEx=a|f; //表示a或f?  Pattern p=Ppile(regEx);  Matcher m=p.matcher(str);  boolean result=m.find();  System.out.println(result); }}  如果str匹配regEx,那么result为true,否则为flase。如果想在查找时忽略大小写,则可以写成:Pattern p=Ppile(regEx,Pattern.CASE_INSENSITIVE);  虽然暂时不知道Pattern(模板、模式)和Matcher(匹配器)的细节,程序的感觉就比较爽,如果先查询is、后来又要查询thing或ting,我们只需要修改一下模板Pattern,而不是考虑if语句和for语句,或者通过charAt()。  1、写一个特殊的字符串——正则表达式如a|f。  2、将正则表达式编译成一个模板:p  3、用模板p去匹配字符串str。  思路清楚了,现在看Java是如何处理的(Java程序员直到JDK1.4才能使用这些类。  Pattern类与查找  ①public final class java.util.regex.Pattern是正则表达式编译后的表达法。下面的语句将创建一个Pattern对象并赋值给句柄p:Pattern p=Ppile(regEx);  有趣的是,Pattern类是final类,而且它的构造器是private。也许有人告诉你一些设计模式的东西,或者你自己查有关资料。这里的结论是:Pattern类不能被继承,我们不能通过new创建Pattern类的对象。  因此在Pattern类中,提供了2个重载的静态方法,其返回值是Pattern对象(的引用)。如:public static Pattern compile(String regex) { return new Pattern(regex, 0);}  当然,我们可以声明Pattern类的句柄,如Pattern p=null;  ②p.matcher(str)表示以用模板p去生成一个字符串str的匹配器,它的返回值是一个Matcher类的引用,为什么要这个东西呢?按照自然的想法,返回一个boolean值不行吗?  我们可以简单的使用如下方法:boolean result=Ppile(regEx).matcher(str)

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档