본문 바로가기
Web Programing!/JAVA / JSP

[JAVA] 정규식표현을 사용한 URL에 자동링크

by 어설픈봉봉이 2011. 7. 11.
반응형
SMALL



게시판을 작성하다보면
작성자가 http://~~ 이런식으로 글을 입력한후
글내용 보기를 하면 http://로 시작된 부분은 링크가
자동으로 걸리게 하는 소스입니다.

간단하지만 게시판등에서 유용하게 사용하실 수 있으실 겁니다.


import java.util.regex.*;

public class LinkTest {

  /** 사용제한
  * 링크는 http:// 로 시작한다
  * 한글링크는 안된다
  */
public static void main(String[] args) {
  /** 아래과 같이 사용하여되 되지만 만약 작성자가 직접 태그를 이용하여
  * 링크를 거는경우 링크가 이상하게 잡히는 경우를 막기위해
  * < 값은 자동링크생성에서 제외하였습니다.
  * 확인하고 싶으신분은 아래 regex 를 사용해서 링크를 생성해보세요
  **/
  //String regex = "([\\p{Alnum}]+)://([a-z0-9.\\p{Punct}\\_]+)";

  String regex = "([\\p{Alnum}]+)://([a-z0-9.\\-&/%=?:@#$(),.+;~\\_]+)";
  String strHTML = "한글사랑 http://www.naver.com test-text";
  
  Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
  Matcher m = p.matcher(strHTML);
  String s = m.replaceAll("<a href='http://$2' target=_blank>http://$2</a>");
  System.out.println("origin string : "+strHTML);
  System.out.println("link string : "+s);
}

}
반응형