본문 바로가기

삽질하기/JAVA

정규표현식 - HTML에서 링크 뽑아내기

반응형

태그의 대소문자 구분은 하지 않으므로 대소문자를 모두 지원하기 위해서는String.toLowerCase(str)를 먼저 사용해야 한다.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegularExpressionEx01 {
   public static void main(String[] args) {
      String str = "<a href = 'http://naver.com/' alt=\"\">";
      String regEx = "<(?:a|frame|iframe)\\s+[\\p{Alnum}\\s=\"\'_]*(?:href|src)\\s*=\\s*(?:\"|\')?([^\"|^\'|^>|^\\s]+)(?:\"|\'|\\s)?[^>]*>";

      Pattern pattern = Pattern.compile(regEx);
      Matcher match = pattern.matcher(str);
     
      if(match.find()) {
         System.out.println("Group Count : " + match.groupCount());
         System.out.println(match.group(0));
         System.out.println(match.group(1));
      }
   }
}

*
위 정규표현식은 완벽하지 않으므로 단순 참고용으로 사용하길 바란다.
*추천사이트 http://htmlparser.sourceforge.net/ , http://jtidy.sourceforge.net/