码迷,mamicode.com
首页 > 编程语言 > 详细

Java面试准备之正则表达式

时间:2014-08-16 11:01:20      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   使用   io   strong   

在常用的Java程序设计中,正则表达式常常跟字符串处理、IO流的部分结合起来,在《Java编程思想》中甚至将正则表达式的讲解放到了IO流这一章的内容里,可见正则表达式跟流的关系之密切。Java设计者也将正则表达式需要用到的包:java.util.regex放在了常用工具里。

  在Java中,

  正则表达式的量词分了三个等级:

    1)贪婪的

      为所有可能的模式进行尽可能多的匹配,一般我们使用这种模式;

    2)勉强的

      只要匹配到就不再继续进行,这种模式在字符串的多个自带方法中有很好的体现;
    3)占有的

      这个模式在Java中才有,用来放置正则表达式失控,一般我们不使用。

   实现方法:

   我们通过java.util.regex中的Pattern和Matcher类来实现一般的正则表达式匹配。

    一个Pattern对象表示一个正则表达式的编译版本。静态的complie()方法将一个正则表达式编译成Pattern对象,通过一个Pattern实例的matcher()我们可以得到一个Matcher对象实例,这个实例就可以呈现我们要的结果;

    例:

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();

   这是一个最典型的正则表达式实例,”aaaaab“为输入,”a*b“为匹配模式,如果输入能被模式匹配,b的值就为TRUE,反之为FALSE。

  Pattern有两个非常实用的方法,一个是静态的public static boolean matches(String regex, CharSequence input),用来查看input中有没有被regex匹配的字符串;

  还有一个是split()方法,产生一个按照regex断开的数组,跟String的方法很像。什么是CharSequence

   matcher中有很多有用的方法,比如find()方法,可以发现多重模式匹配,并返回一个boolean值,因此一般在while循环中使用它。

实例:如何使用正则表达式,提取一个网页中的URL?这在网络爬虫中使用的比较多。

  

Java面试准备之正则表达式,布布扣,bubuko.com

Java面试准备之正则表达式

标签:style   blog   http   color   java   使用   io   strong   

原文地址:http://www.cnblogs.com/RainFool/p/3915252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!