JAVA에서 URL 정규표현식을 알아보자. (발췌: http://goodidea.tistory.com/86)
원문에서는 마지막에 http://www.daum.net 과 같이 URL 마지막에 슬래쉬(/)가 없는 예에서는 에러가 난다.
이를 수정하면 아래와 같이 된다.
^(https?):\/\/([^:\/\s]+)(:([^\/]*))?((\/[^\s/\/]+)*)?\/?([^#\s\?]*)(\?([^#\s]*))?(#(\w*))?$
JAVA 테스트 코드로 바꾸면 다음과 같다.
@Test
public void url() {
String regex = "^(https?):\\/\\/([^:\\/\\s]+)(:([^\\/]*))?((\\/[^\\s/\\/]+)*)?\\/?([^#\\s\\?]*)(\\?([^#\\s]*))?(#(\\w*))?$";
Pattern p = Pattern.compile(regex);
assertTrue(p.matcher("https://goodidea.tistory.com:8888/qr/aaa/ddd.html?abc=def&ddd=fgf#sharp").matches());
assertTrue(p.matcher("http://dextto.tistory.com").matches());
assertTrue(p.matcher("http://blog.daum.net/dexter").matches());
assertTrue(p.matcher("http://www.daum.net:80/index.cfm").matches());
assertTrue(p.matcher("http://xxx:password@www.daum.net").matches());
assertTrue(p.matcher("http://localhost/index.php?ab=1&c=2").matches());
assertTrue(p.matcher("http://localhost:8080").matches());
assertTrue(p.matcher("http://dextto.tistory.com/admin/entry/post/?id=150&returnURL=/entry/JAVA-Regular-Expression-%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D-%EC%98%88%EC%A0%9C").matches());
}
반응형
'Tips > Java' 카테고리의 다른 글
Lambda를 이용한 Lazy Initialization (0) | 2016.09.02 |
---|---|
Files.find를 이용하여 디렉토리 내 모든 파일 리스트 출력하기 (0) | 2016.09.01 |
JUnit Test 클래스를 main함수로 실행하기 (0) | 2015.01.05 |
[JAVA] 문자열 내에서 숫자만 분리하기 (0) | 2014.05.09 |
[JAVA] Regular Expression (정규 표현식) 예제 (0) | 2013.03.16 |