java正则表达式使用

9/6/2015来源:Java教程人气:1642

java正则表达式使用

  最近碰到在某个网站下载东西不能同时下载两个以上的文件,为了方便下载我用了java解析网页源码去下载文件,其中用到了正则表达式,发个简单的正则表达式例子。

public class PatternTest {    public static void main(String[] args) {      String testString = "<html><a href ='http://www.baidu.com' id= 'baidu' ><a href ='http://www.163.com' id='wangyi' ></html>";      // 符合name='baidu' 的<a>标签.      String patternString = "<\\s*[a|A]([^>]*)[i|I][d|D]\\s*[=]\\s*['|\"](baidu)['|\"](.*?)>";      Pattern pattern = Pattern.compile(patternString, Pattern.DOTALL);      Matcher ma = pattern.matcher(testString);      while (ma.find()) {          System.out.PRintln(ma.group());      }    }}

目标是提取网页中满足id='baidu'的<a>标签。下面来解释一下patternString的含义:

  \\s*    多个空格,<和a之间存在空格也是合法的

  ([^>]*)  多个非>的字符串

  (.*?)    匹配尽可能短的字符串