본문 바로가기

Programming/Java/Android

[Java] 자바 정규식

정규 표현 구문의 요약

구문매치 대상
 
캐릭터
x캐릭터 x
\\backslash 캐릭터
\0n8 진치 0n 를 가지는 캐릭터 (0 <= n <= 7)
\0nn8 진치 0nn 를 가지는 캐릭터 (0 <= n <= 7)
\0mnn8 진치 0mnn 를 가지는 캐릭터 (0 <= m <= 3, 0 <= n <= 7)
\xhh16 진치 0xhh 를 가지는 캐릭터
\uhhhh16 진치 0xhhhh 를 가지는 캐릭터
\t탭 캐릭터 ('\u0009')
\n개행 캐릭터 ('\u000A')
\r왕복대 리턴 캐릭터 ('\u000D')
\f용지 보내 캐릭터 ('\u000C')
\a경고 (벨) 캐릭터 ('\u0007')
\e이스케이프 캐릭터 ('\u001B')
\cxx 에 대응하는 제어 캐릭터
 
캐릭터 클래스
[abc]a,b, 또는 c (단순 클래스)
[^abc]a,b,c 이외의 캐릭터 (부정)
[a-zA-Z]a ~ z 또는 A ~ Z (범위)
[a-d[m-p]]a ~ d, 또는 m ~ p[a-dm-p] (결합)
[a-z&&[def]]d,e,f (교차)
[a-z&&[^bc]]b 와 c 를 제외하는 a ~ z[ad-z] (감산)
[a-z&&[^m-p]]m ~ p 를 제외하는 a ~ z[a-lq-z] (감산)
 
정의 끝난 캐릭터 클래스
.임의의 캐릭터 (줄 끝 기호와 성냥 하는 경우도 있다)
\d숫자: [0-9]
\D숫자 이외: [^0-9]
\s공백 캐릭터: [ \t\n\x0B\f\r]
\S비공백 캐릭터: [^\s]
\w단어 구성 캐릭터: [a-zA-Z_0-9]
\W비단어 캐릭터: [^\w]
 
POSIX 캐릭터 클래스 (US-ASCII 마셔)
\p{Lower}소문자의 영문자: [a-z]
\p{Upper}대문자의 영문자: [A-Z]
\p{ASCII}모든 ASCII 캐릭터: [\x00-\x7F]
\p{Alpha}영문자: [\p{Lower}\p{Upper}]
\p{Digit}10 진수자: [0-9]
\p{Alnum}영숫자: [\p{Alpha}\p{Digit}]
\p{Punct}구두점 캐릭터: ! "#$%&'()*+,-. /:;<=>? @[\]^_`{|}~ 의 언젠가
\p{Graph}표시할 수 있는 캐릭터: [\p{Alnum}\p{Punct}]
\p{Print}프린트 가능 캐릭터: [\p{Graph}]
\p{Blank}공백 또는 탭: [ \t]
\p{Cntrl}제어 캐릭터: [\x00-\x1F\x7F]
\p{XDigit}16 진수자: [0-9a-fA-F]
\p{Space}공백 캐릭터: [ \t\n\x0B\f\r]
 
Unicode 블록과 카테고리의 클래스
\p{InGreek}희랍어 블록의 캐릭터 (단순블록)
\p{Lu}대문자 (단순카테고리)
\p{Sc}통화 기호
\P{InGreek}희랍어 블록 이외의 캐릭터 (부정)
[\p{L}&&[^\p{Lu}]]대문자 이외의 캐릭터 (감산)
 
경계 정규 표현 엔진
^행의 선두
$행의 말미
\b단어 경계
\B비단어 경계
\A입력의 선두
\G전회의 성냥의 말미
\Z마지막줄 끝 기호가 있는 경우는 그것을 제외한 입력의 말미
\z입력의 말미
 
최장 일치 수량자
X?X, 1 회 또는 0 회
X*X, 0 회 이상
X+X, 1 회 이상
X{n}X,n 회
X(n,}X,n 회이상
X{n,m}X,n 회이상,m 회이하
 
최단 일치 수량자
X??X, 1 회 또는 0 회
X*?X, 0 회 이상
X+?X, 1 회 이상
X{n}?X,n 회
X(n,}?X,n 회이상
X{n,m}?X,n 회이상,m 회이하
 
탐욕인 수량자
X? +X, 1 또는 0 회
X*+X, 0 회 이상
X++X, 1 회 이상
X{n}+X,n 회
X(n,}+X,n 회이상
X{n,m}+X,n 회이상,m 회이하
 
논리 연산자
XYX 의 직후에 Y
X|YX 또는 Y
(X)X,전방 참조를 실시하는 정규 표현 그룹
 
전방 참조
\n성냥 한 n 번째의전방 참조를 실시하는 정규 표현 그룹
 
인용
\정규 표현은 아니지만, 다음의 캐릭터를 이스케이프 한다
\Q정규 표현은 아니지만,\E 까지의 모든 캐릭터를 이스케이프 한다
\E정규 표현은 아니지만,\Q 로 개시된 인용을 이스케이프 한다
 
특수한 구문 (전방 참조를 실시하지 않는다)
(? :X)X,전방 참조를 실시하지 않는 정규 표현 그룹
(? idmsux-idmsux)  정규 표현은 아니지만, 매치 플래그의 온/오프를 바꾼다
(? idmsux-idmsux:X) X, 지정된 플래그를 온/오프로 한전방 참조를 실시하지 않는 정규 표현 그룹
(? =X)X, 폭제로의 긍정 예측
(?!X)X, 폭제로의 부정 예측
(? <=X)X, 폭제로의 긍정 후 읽기
(? <! X)X, 폭제로의 부정 후 읽기
(? >X)X, 독립한전방 참조를 실시하지 않는 정규 표현 그룹