快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
现,它根据Perl 5正则表达式语法进行模式匹配:

PatternMatcher matcher=new Perl5Matcher();

PatternMatcher对象提供了多个方法进行匹配操作,这些方法的第一个参数都是需要根据正则表达式进行匹配的字符串:

boolean matches(String input, Pattern pattern):当要求输入的字符串input和正则表达式pattern精确匹配时使用该方法。也就是说当正则表达式完整地描述输入字符串时返回真值。

boolean matchesPrefix(String input, Pattern pattern):要求正则表达式匹配输入字符串起始部分时使用该方法。也就是说当输入字符串的起始部分与正则表达式匹配时返回真值。

boolean contains(String input, Pattern pattern):当正则表达式要匹配输入字符串的一部分时使用该方法。当正则表达式为输入字符串的子串时返回真值。

但以上三种方法只会查找输入字符串中匹配正则表达式的第一个对象,如果当字符串可能有多个子串匹配给定的正则表达式时,那么你就可以在调用上面三个方法时用PatternMatcherInput对象作为参数替代String对象,这样就可以从字符串中最后一次匹配的位置开始继续进行匹配,这样就方便的多了。

用PatternMatcherInput对象作为参数替代String时,上述三个方法的语法如下:

boolean matches(PatternMatcherInput input, Pattern pattern)

boolean matchesPrefix(PatternMatcherInput input, Pattern pattern)

boolean contains(PatternMatcherInput input, Pattern pattern)

JAVA中正则表达式的应用(一)(3)

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

★Util.substitute()方法:

查找后需要要进行替换,我们就要用到Util.substitute()方法,其语法如下:

public static String substitute(PatternMatcher matcher,     Pattern pattern,Substitution sub,String input,     int numSubs)

前两个参数分别为PatternMatcher和Pattern对象。而第三个参数是个Substiution对象,由它来决定替换操作如何进行。第四个参数是要进行替换操作的目标字符串,最后一个参数用来指定是否替换模式的所有匹配子串(Util.SUBSTITUTE_ALL),或只进行指定次数的替换。

在这里我相信有必要详细解说一下第三个参数Substiution对象,因为它将决定替换将怎样进行。

Substiution:

Substiution是一个接口类,它为你提供了在使用Util.substitute()方法时控制替换方式的手段,它有两个标准的实现类:StringSubstitution与Perl5Substitution。当然,同时你也可以生成自己的实现类来定制你所需要的特殊替换动作。

StringSubstitution:

StringSubstitution 实现的是简单的纯文字替换手段,它有两个构造方法:

StringSubstitution()->缺省的构造方法,初始化一个包含零长度字符串的替换对象。

StringSubstitution(java.lang.String substitution)->初始化一个给定字符串的替换对象。

Perl5Substitution:

Perl5Substitution 是StringSubstitution的子类,它在实现纯文字替换手段的同时也允许进行针对MATH类里各匹配组的PERL5变量的替换,所以他的替换手段比其直接父类StringSubstitution更为多元化。

它有三个构造器:

Perl5Substitution()

Perl5Substitution(java.lang.String substitution)

Perl5Substitution(java.lang.String substitution, int numInterpolations)

前两种构造方法与StringSubstitution一样,而第三种构造方法下面将会介绍到。

在 Perl5Substitution的替换字符串中可以包含用来替代在正则表达式里由小扩号围起来的匹配组的变量,这些变量是由$1, $2,$3等形式来标识。我们可以用一个例子来解释怎样使用替换变量来进行替换:

假设我们有正则表达式模式为 b\d+:(也就是 b[0-9]+:),而我们想把所有匹配的字符串中的&qu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号