기본 표현


  • .    줄바꿈 문자를 제외한 임의의 문자 하나를 대체
  • \    이스케이프 문자
  • []    집합
  • [\b]    역스페이스
  • \f    페이지 넘김(form feed) 문자
  • \n    줄바꿈(line feed) 문자
  • \r    캐리지 리턴
  • \t    탭
  • \v    수직 탭
  • \d    숫자 하나([0-9])와 동일
  • \D    숫자를 제외한 문자([^0-9])와 동일
  • \w    대소문자와 밑줄을 포함하는 모든 영숫자(=[a-zA-Z0-9_])
  • \W    영숫자나, 밑줄이 아닌 모든 문자(=[^a-zA-Z0-9_])
  • \s    모든 공백 문자(=[\f\n\r\t\v])
  • \S    공백 문자가 아닌 모든 문자(=[^\f\n\r\t\v])
  • *    0-n번 반복 (greedy)
  • ?    0-1번 (greedy)
  • +    1-n번 반복 (greedy)
  • *?    0-n번 반복 (lazy)
  • +?    1-n번 반복 (lazy)
  • {숫자}    숫자 만큼 반복
  • {숫자1, 숫자2}    최소 숫자1번 반복하고 숫자2번까지 반복
  • {숫자,}    최소 숫자만큼 반복 (greedy)
  • {숫자,}?    최소 숫자만큼 반복 (lazy)
  • ()    하위 표현식
  • |    OR
  • \숫자    역참조, 숫자는 하위 표현식의 인덱스, 0은 전체.
  • $숫자    치환시의 역참조
  • \E    \L혹은 \U 변환의 끝을 나타냄
  • \l    다음에 오는 글자를 소문자로 치환
  • \L    \E를 만날 때까지 모든 문자를 소문자로 치환
  • \u    다음에 오는 글자를 대문자로 치환
  • \U    \E를 만날 때까지 모든 문자를 대문자로 치환




위치 찾기


  • \b    단어 경계 지정
  • ^표현    문자열 시작 문자 지정
  • $표현    문자열 끝 문자 지정
  • (?m)    줄바꿈문자를 공백문자에 포함되도록 한다.




POSIX


  • [:alnum:]    모든 영숫자([a-zA-Z0-9)
  • [:alpha:]    모든 영문자([a-zA-Z])
  • [:blank:]    빈칸이나 탭 문자와 같음
  • [:cntrl:]    아스키 제어문자(아스키 0-31, 127)
  • [:digit:]    모든 한 자리 숫자([0-9])
  • [:graph:]    [:print:]와 동일하나 빈칸(space)은 제외
  • [:lower:]    모든 소문자([a-z])
  • [:print:]    출력가능한 모든 문자
  • [:punct:]    [:alnum:]이나 [:cntrl:]가 포함되지 않은 모든 문자
  • [:space:]    빈칸을 포함한 모든 공백 문자([\f\n\r\t\v])
  • [:upper:]    모든 대문자([A-Z])
  • [:xdigit:]    모든 16진수 숫자([a-fA-F0-9])





전방탐색과 후방탐색


  • (?=)    긍정형 전방 탐색
  • (?!)    부정형 전방 탐색
  • (?<=)    긍정형 후방 탐색
  • (?<!)    부정형 후방 탐색




조건 사용하기


  • (?(backreference)true)    역참조가 있을 때 true를 함께 일치시킴
  • (?(backreference)true|false)    역참조가 있을 때 true를 아니면 false를 일치시킴
  • (?(?=식)true|false)    전방탐색을 이용한 조건
  • (?(?<=식)true|false)    후방탐색을 이용한 조건




자바에서 정규표현식 사용


※ JRE 1.4부터 정규표현식을 지원하므로 유의하여 사용한다.

※ 조건은 지원하지 않음

※ \E, \l, \L, \u, \U를 이용한 대소문자 변환은 지원하지 않음

※ \b를 이용한 백스페이스 일치를 지원하지 않음

※ \z는 지원하지 않음


java.util.regex.Matcher 클래스

  • find() - 문자열에서 패턴과 일치하는 부분이 있는지 찾는다.
  • lookingAt() - 문자열이 주어진 패턴으로 시작하는지 일치시켜 본다.
  • matches() - 문자열 전체를 주어진 패턴과 일치시켜본다.
  • replaceAll() - 일치하는 부분을 모두 치환한다.
  • replaceFirst() - 처음 일치하는 부분만 치환한다.
  • group() - 하위 표현식을 반환한다.


java.util.regex.Pattern 클래스

  • compile() - 정규 표현식을 패턴으로 컴파일한다.
  • flag() - 패턴에 설정되어 있는 일치 플래그를 반환한다.
  • matches() - Matcher 클래스의 matches와 동일함
  • pattern() - 만들었던 패턴에서 정규 표현식 부분을 문자열로 반환한다.
  • split() - 문자열을 하위 문자열로 나눈다.



import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest{     public static void main(String[] args){         Pattern pattern = Pattern.compile("정규표현식");         Matcher matcher = pattern.matcher("대상 문자열");         if(matcher.find()){             // 처리         }     } }




'밤을 지새다' 카테고리의 다른 글

Linux Kernel Map  (0) 2013.03.24
C# ListBox Double Click 이벤트  (0) 2012.06.08
네이트온 광고와 팝업 없애기  (3) 2012.05.16
파일의 확장자를 보는 방법  (0) 2012.05.16
Gmail 실행파일 첨부 문제  (0) 2012.05.16

+ Recent posts