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之间存在空格也是合法的

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

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

  

你可能感兴趣的:(java正则表达式)