bboks.net™

자주 사용되는 정규식 본문

카테고리 없음

자주 사용되는 정규식

bboks.net 2013. 2. 7. 17:21

자주쓰는 정규표현식 샘플입니다.


■ 사용자 ID 검증 패턴 : "^[a-z][a-z0-9]{3,15}$"

(ID의 가장 앞 글자는 반드시 알파벳으로 시작해야 하며, ID에 포함될 수 있는 문자는 알파벳 또는 숫자임. 총 길이는 최소 4자에서 최대 16 자)


■ E-Mail 주소 검증 패턴 : "^[a-z0-9\.\-_]+@([a-z0-9\-]+\.)+[a-z]{2,6}$"

(ID부분은 최소 1자 이상의 a-z 또는 0-9 또는 . 또는 - 또는 _ 문자가 사용 가능하며,

도메인 부분은 1자 이상의 a-z 또는 0-9 또는 - 문자로 구성되고 .으로 끝맺음해야 하며,

가장 마지막 부분은 2~6의 알파벳으로 끝나야 한다. (2자는 kr 등 국가별도메인을 위한 것이고,

6자는 새로운 gTLD인 museum 까지 고려한 것임)


■ 문자열중 URL 찾아 링크 걸어주기 #1

str.replaceAll("(.*)((?:http|ftp)://[\w\./\-?&%:=]+)(.*)", "$1<a href="$2" target="_blank">$2</a>$3")

이것은 문자열중 http://나 ftp://로 시작하는 URL 문자열을 찾아 자동으로 링크를 걸어주는 메소드입니다.

단, URL에 포함된 문자열은 rfc에 정의된 표준문자열만 가능하고, parameter 등에 한글 등의 문자가 포함되어 있으면 링크는 그 바로 앞까지만 걸리게 됩니다.  만약 한글 등의 문자까지 함께 링크를 걸려면 아래 방법을 사용하면 됩니다.


■ 문자열중 URL 찾아 링크 걸어주기 #2

str.replaceAll("(.*)((?:http|ftp)://\S+)(.*)", "$1<a href="$2" target="_blank">$2</a>$3");

위의 방법과 유사하긴 하지만 이것은 공백을 기준으로 링크의 끝을 알아냅니다.  따라서 URL에 한글로 된 파라미터가 포함되어도 정상적으로 걸리긴 하지만 반드시 링크의 끝에 한칸 이상의 공백이나 Line Break 등이 있어야만 정상적으로 링크가 걸립니다.


■ 문자열중 메일주소 찾아 찾아 링크 걸어주기

str.replaceAll("(.*\s)([\w\.\-]+@(?:[a-z0-9\-]+\.)+[a-z]{2,6})(.*)", "$1<a href="mailto:$2">$2</a>$3");

이것은 문자열 내용중에 E-Mail 주소를 찾아 링크를 걸어주는 역학을 합니다.


■ 개행(줄바꿈) 문자 찾기 : "\r\n|\n|\r"

개행문자는 보통 n으로 찾을 수 있는데, 플랫폼에 따라서 이 개행문자가 차이가 나기 때문에 주의해야 합니다.


UNIX : n (Line Feed)

Mac : r (Carrige Return)

Windows : rn (CR/LF)

"\r\n|\n|\r" 패턴은 플랫폼에 무관하게 개행문자를 찾을 수 있습니다.


[출처] 자주 사용되는 정규 표현식 샘플