快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
因为它是一部" +"好电影。/名词:凯文。");     for (int i=0; i<result.length; i++)       System.out.println(result[i]);    } }

输出结果为:

Kevin has seen《LEON》seveal times,because it is a good film. 凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。 名词:凯文。

很明显,该程序将字符串按"/"进行了分段,我们以下再使用 split(CharSequence input, int limit)方法来指定分段的段数,程序改动为:

tring[] result = p.split("Kevin has seen《LEON》seveal times,because it is a good film./ 凯文已经看过《这个杀手不太冷》几次了 ,因为它是一部好电影。/名词:凯文。",2);

这里面的参数"2"表明将目标语句分为两段。

输出结果则为:

Kevin has seen《LEON》seveal times,because it is a good film. 凯文已经看过《这个杀手不太冷》几次了,因为它是一部好电影。/名词:凯文。

由上面的例子,我们可以比较出java.util.regex包在构造Pattern对象以及 编译指定的正则表达式的实现手法与我们在上一篇中所介绍的Jakarta-ORO 包在 完成同样工作时的差别,Jakarta-ORO 包要先构造一个PatternCompiler类对象 接着生成一个Pattern对象,再将正则表达式用该PatternCompiler类的compile ()方法来将所需的正则表达式编译赋予Pattern类:

PatternCompiler orocom=new Perl5Compiler();

Pattern pattern=orocom.compile("REGULAR EXPRESSIONS");

PatternMatcher matcher=new Perl5Matcher();

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

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

但是在java.util.regex包里,我们仅需生成一个Pattern类,直接使用它的 compile()方法就可以达到同样的效果: Pattern p = Pattern.compile(" [/]+");

因此似乎java.util.regex的构造法比Jakarta-ORO更为简洁并容易理解。

Matcher类:

Matcher方法如下:

Matcher appendReplacement(StringBuffer sb, String replacement)

将当前匹配子串替换为指定字符串,并且将替换后的子串以及 其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。

StringBuffer appendTail(StringBuffer sb)

将最后一次匹配工作后剩余的字符串添加到一个StringBuffer 对象里。

int end()

返回当前匹配的子串的最后一个字符在原目标字符串中的索引 位置 。

int end(int group)

返回与匹配模式里指定的组相匹配的子串最后一个字符的位置 。

boolean find()

尝试在目标字符串里查找下一个匹配子串。

boolean find(int start)

重设Matcher对象,并且尝试在目标字符串里从指定的位置开始 查找下一个匹配的子串。

String group()

返回当前查找而获得的与组匹配的所有子串内容

String group(int group)

返回当前查找而获得的与指定的组匹配的子串内容

int groupCount()

返回当前查找所获得的匹配组的数量。

boolean lookingAt()

检测目标字符串是否以匹配的子串起始。

boolean matches()

尝试对整个目标字符展开匹配检测,也就是只有整个目标字符 串完全匹配时才返回真值。

Pattern pattern()

返回该Matcher对象的现有匹配模式,也就是对应的Pattern 对 象。

String replaceAll(String replacement)

将目标字符串里与既有模式相匹配的子串全部替换为指定的字 符串。

String replaceFirst(String replacement)

将目标字符串里第一个与既有模式相匹配的子串替换为指定的 字符串。

Matcher reset()

重设该Matcher对象。

Matcher reset(CharSequence input)

重设该Matcher对象并且指定一个新的目标字符串。

int start()

返回当前查找所获子串的开始字符在原目标字符串中的位置。

int start(int group)

返回当前查找所获得的和指定组匹配的子串的第一个字符在原 目标字符串中的位置。

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