8.5.正则表达式,CharSequence,find,groups,start,end,匹配模式,split,reset,替换--基于文本的应用.doc

8.5.正则表达式,CharSequence,find,groups,start,end,匹配模式,split,reset,替换--基于文本的应用.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.5.正则表达式,CharSequence,find,groups,start,end,匹配模式,split,reset,替换--基于文本的应用

正则表达式,CharSequence,find,groups,start,end,匹配模式,split,reset,替换--基于文本的应用 【】 CharSequence JDK 1.4定义了一个新的接口,叫CharSequence。它提供了String和StringBuffer这两个类的字符序列的抽象: interface CharSequence { charAt(int i); length(); subSequence(int start, int end); toString(); } Java的正则表达式是由java.util.regex的Pattern和Matcher类实现的。Pattern对象表示经编译的正则表达式。静态的compile( )方法负责将表示正则表达式的字符串编译成Pattern对象。正如上述例程所示的,只要给Pattern的matcher( )方法送一个字符串就能获取一个Matcher对象。此外,Pattern还有一个能快速判断能否在input里面找到regex的 staticboolean matches(?regex, ?input) 以及能返回String数组的split( )方法,它能用regex把字符串分割开来。 只要给Pattern.matcher( )方法传一个字符串就能获得Matcher对象了。接下来就能用Matcher的方法来查询匹配的结果了。 boolean matches() boolean lookingAt() boolean find() boolean find(int start) matches( )的前提是Pattern匹配整个字符串,而lookingAt( )的意思是Pattern匹配字符串的开头。 find( ) Matcher.find( )的功能是发现CharSequence里的,与pattern相匹配的多个字符序列。例如: //: c12:FindDemo.java import java.util.regex.*; import com.bruceeckel.simpletest.*; import java.util.*; publicclass FindDemo { privatestatic Test monitor = new Test(); publicstaticvoid main(String[] args) { Matcher m = Ppile(//w+) .matcher(Evening is full of the linnets wings); while(m.find()) System.out.println(m.group()); int i = 0; while(m.find(i)) { System.out.print(m.group() + ); i++; } monitor.expect(new String[] { Evening, is, full, of, the, linnet, s, wings, Evening vening ening ning ing ng g is is s full + full ull ll l of of f the the he e linnet linnet + innet nnet net et t s s wings wings ings ngs gs s }); } } ///:~ //w+的意思是一个或多个单词字符,因此它会将字符串直接分解成单词。find( )像一个迭代器,从头到尾扫描一遍字符串。第二个find( )是带int参数的,正如你所看到的,它会告诉方法从哪里开始找——即从参数位置开始查找。 Groups Group是指里用括号括起来的,能被后面的表达式调用的正则表达式。Group 0 表示整个表达式,group 1表示第一个被括起来的group,以此类推。所以; A(B(C))D 里面有三个group:group 0是ABCD, group 1是BC,group 2是C。 你可以用下述Matcher方法来使用group: public int groupCount( )返回matcher对象中的group的数目。不包括group0。 public String group( ) 返回上次匹配操作(比方说find( ))的group 0(整个匹配) public String group(int i)返回上次匹配操作的某个group。如果匹配成功,但是没能找到group,则返回null。 public int start(int group)

文档评论(0)

xjj2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档