728x90
반응형
/* @(#)kimenseok.com 2007/04/08 */
1. 정규식이란?
특정한 문자열의 의 검색,치환,추출을 위한 패턴을 의미합니다.
wiki에는 아래와 같이 정의하고 있습니다.
A regular expression is a string that describes or matches a set of strings,
according to certain syntax rules.
우리는 이러한 정규식을 습득함을 통해서 수많은 이점을 가져올 수 있습니다.
2. 정규식 만들기
Java에서는 아래와 같이 정규식을 작성할 수 있습니다.
Pattern p = Pattern.compile("패턴");
Matcher m = p.matcher("문자열");
boolean b = m.matches();
boolean b = Pattern.matches("패턴", "문자열 패턴");
또는, String.replaceAll("패턴", "문자열")을 통해서도 정규식 사용이 가능합니다.
3. 정규식 표현법
정규식을 표현하는 방법은 아래와 같은 표를 통해 사용이 가능하며,
아래 코드표는 Sun에서 제공하는 튜토리얼에 기준되어있습니다.
번역의 문제가 있을 수 있으니, 자세한 정보는 아래 주소를 참조하십시오.
http://java.sun.com/docs/books/tutorial/essential/regex/
정규식
설명
.
하나의 문자를 의미합니다.
즉, ab. 은 abc나 abd가 될 수 있습니다.
?
해당 패턴의 앞에 문자가(1개)없거나 혹은 한개가 존재하는 경우를 의미합니다. 즉, a?c는 abc도 될 수 있고, bc도 될 수 있습니다.
*
위와 거의 동일하나 하나 이상의 문자를 의미하게 됩니다.
즉, ab*는 aaa도 ab도 될 수 있다는 의미입니다.
^
문자열의 시작을 의미합니다.
즉, ^a는 a로 시작되는 문자를 검색하게 됩니다.
+
앞의 문자가 하나이상의 반복을 의미합니다.
즉, ab+는 abbbb가 될 수도 있다는 의미입니다.
[^]
괄호안의 형식을 제외한다는 의미입니다.
즉, [^a]bc는 a를 제외한 bc, bcd등을 나타냅니다.
$
문자열의 끝을 의미합니다.
즉, ab$가 되는 경우 반드시 b로 끝나는 문자를 나타냅니다.
[ ]
괄호안의 형식이 일치하는 경우를 나타냅니다.
즉, [ab]는 a,b,ab모두가 일치하게 됩니다.
( )
()안의 내용을 하나의 묶음으로 사용합니다.
즉, (ab)+는 위 +에 따라 ababab등을 나타냅니다.
{ }
안의 숫자에 따른 반복개수를 의미합니다.
즉, ab{2}는 abab를 나타냅니다.
|
or연산자와 동일합니다.
즉, a|b|c 는 a,b,c,abc모두가 될 수 있습니다.
4. 정규식 패턴예제
위의 표현방법의 조합을 통해서 우리는 다양하고 편리한 코드를 작성할 수 있습니다.
E-mail 주소를 찾아내는 패턴
^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@ [A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
이미지파일을 찾아내는 패턴
([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
IP주소를 찾아내는 패턴
^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
HTML 태그 중 링크를 찾아내는 패턴
(?i)<a([^>]+)>(.+?)</a>\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+));
[출처] [Java] Regex(자바에서 정규식 사용하기)|작성자 너부리
728x90
반응형
'JAVA > regex 정규표현식' 카테고리의 다른 글
[Java] 정규표현식 (1) (0) | 2016.02.26 |
---|---|
이메일/전화번호 유효성검사 (0) | 2014.10.28 |
RegEx Coach로 정규표현식 테스트 (0) | 2014.10.28 |
정규표현식 관련 링크들 (0) | 2014.10.28 |
Perl/정규표현식 (0) | 2014.10.28 |
파이썬 정규 표현식 HOWTO (0) | 2014.10.28 |
삽질 중독 재활센터 마지막회 (0) | 2014.10.28 |
패턴 추출 기능 추가 - Ver. 0.1b 프리뷰 (0) | 2014.10.28 |