태그의 대소문자 구분은 하지 않으므로 대소문자를 모두 지원하기 위해서는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/
삽질하기/JAVA
정규표현식 - HTML에서 링크 뽑아내기
반응형