메타 문자 | 설명 | 예 |
| | 표현식 논리 OR | gr(a|e)y -> "gray" "grey" |
^ | 입력의 시작부분에 대응된다. | /^A/는 "An E"의 A와 대응된다. |
$ | 입력이 끝 부분과 대응된다. | /t$/는 "eat"와 대응된다. |
* ( = {0,}) | 앞의 표현식이 0회 이상 연속으로 반복되는 부분과 대응된다. | /bo*/ -> "boooed", "A bird warbled" X-> "A goat grunted" ab*c -> "ac" "abc" "abbc" "abbbc" |
+( = {1,}) | 앞의 표현식이 1회 이상 연속으로 반복되는 부분에 대응된다. | /a+/ -> "candy", "caaaandy" X->"cndy" ab+c -> "abc" "abbc" "abbbc" X-> "ac" |
? ( = {0,1}) | 앞의 표현식이 0 또는 1회 등장하는 부분과 대응된다. | /e?le?/은 "angel", "angle", "oslo"에 대응. colou?r -> "color" "colour" |
. | 개행 문자를 제외한 모든 단일 문자와 대응된다. | /.n/ -> "nay, an apple is on the tree"의 'an'과 'on'에 대응. X-> 'nay' |
{n} |
정확히 n번만큼 일치시킨다. | |
{min, } |
min번 이상만큼 일치시킨다. | |
{min, max} |
적어도 min번만큼 일치시키고, max번을 초과하지 않는다. | |
[ ] (= 문자 클래스) |
[와 ]사이의 문자 중 하나를 선택. | 를 여러개 쓴 것과 같은 의미. | [abc]d -> "ad" "bd" "cd" - 와 함께 쓰면 범위 지정 가능 [a-z] = a부터 z까지 중 하나 [1-9] = 1부터 9까지 중 하나 |
[^ ] (= 부정) |
해당 문자를 제외한 나머지 문자를 선택한다. | [^abc]d -> "ed" "fd" X-> "ad" "bd" [^a-z] = 알파벳 소문자로 시작하지 않는 모든 문자 |
(x) (= 하위식) | /(foo) (bar) \1 \2/ 안의 '(foo)'와 '(bar)'는 문자열 "foo bar foo bar"에서 처음의 두 단어에 대응되고 이를 기억한다. \1과 \2는 문자열의 마지막 두 단어에 대응된다. | |
(?:x) (= 비포획 괄호, 정규식 연산자가 같이 동작할 수 있게 하위 표현을 정의) | 'x'에 대응되지만 대응된 것을 기억하지 않는다. 만약 정규식이 /foo{1,2}/이면 {1,2}는 'foo'의 마지막 'o'에만 적용된다. 그렇지만 비포획괄호인 /(?:foo){1,2}/라면 {1,2}는 단어 'foo' 전체에 적용된다. | |
x(?=y) (=lookahead) | 오직 'y'가 뒤따라오는 'x'에만 대응된다. | /jack(?=Sprat)/ -> "Jack Sprat" |
x(?!y) (= negated lookahead) | 'x'뒤에 'y'가 없는 경우에만 'x'에 일치한다. | /\d+(?!\.)/ = 소수점이 뒤따라오지 않는 숫자에 일치 |
메타 문자 | 설명 | 예 |
\A | 문자열의 시작점과 대응된다. (내부 줄이 아니다) | /\AH/ -> "Hello\nWorld\n" |
[\b] | 백스페이스에 대응. 대괄호 []를 반드시 이용 | |
\b | 단어 경계에 대응된다. |
/\bm/ -> "moon"의 m에 대응 |
\B | 단어 경계가 아닌 부분에 대응. |
/\B../ -> "noonday"의 'oo'에 대응 |
\d | 숫자와 일치시킨다. |
/(\d+)/ -> "99 bottles of beer on the wall" |
\D | 숫자가 아닌 항목을 일치시킨다. (= [^0-9]) |
/\D/ -> "Hello World\n" |
\f | 폼피드 (U+000C) 문자에 대응 |
|
\n (= 일치하는 n번째 패턴) | 일치하는 패턴들 중 n번째를 선택하며, 여기에서 n은 1에서 9 중 하나가 올 수 있다. | |
\n | 줄 바꿈(U+00A) 문자에 대응 | |
\r | 캐리지 리턴 (U+000D) 문자에 대응 | |
\s | 스페이스, 탭, 폼피드, 줄 바꿈 문자 등을 포함한 하나의 공백 문자에 대응된다. (= [\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\202f\u205f\u3000\ufeff]) |
/\s\w*/ -> "foo bar"의 ' bar' |
\S | 공백을 제외한 어떠한 것들과 대응된다. | /\S\w*/ -> "foo bar"의 'foo' |
\t | 탭 (U+0009) 문자에 대응된다. | |
\v | 수직 탭 (U+000B) 문자에 대응된다. | |
\w | _를 포함한 영숫자와 대응된다. (= [A-Za-z0-9_]) |
/\w/ -> "apple"의 'a' /\w/ -> "$5.28"의 '5' |
\W | _를 제외하여 영숫자가 아닌 문자열들과 대응된다. (= [^A-Za-z0-9_]) |
/\w/ -> "50%"의 '%' |
\z | 문자열이 끝과 일치시킨다. (내부 줄이 아니다) | /d\n\z/ -> "Hello\nWorld\n" |
\0 | 널 (U+0000) 문자에 대응. 주의! 다른 숫자 뒤에 쓸 경우 8진 이스케이프 시퀀스 |
|
\xhh | 코드가 hh(두 16진 숫자)인 문자에 일치합니다. | |
\uhhhh | 코드가 hhhh(네개의 16진 숫자)인 문자에 일치합니다. |
Regular expression flags
Flag | Description |
g | 전역 검색 |
i | 대소문자 구분 없는 검색 |
m | 다중행(multi-line) 검색 |
s | . 에 개행 문자도 매칭 (ES2018) |
u | 유니코드; 패턴을 유니코드 포인트의 나열로 취급합니다. |
y | "sticky" 검색을 수행. 문자열의 현재 위치부터 검색을 수행 |
[ 출처 ]
https://ko.wikipedia.org/wiki/정규_표현식
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D
'개발 > Java' 카테고리의 다른 글
Java] Multi Thread 환경에서 Singleton 패턴을 Thread Safe하게 사용하기 (3) | 2021.05.18 |
---|---|
Java] ExecutorService란? (0) | 2021.04.12 |
Java G1GC (0) | 2020.08.13 |
Java] Do it 자바 프로그래밍 입문 요약 (셋째마당 - 12) (0) | 2019.06.18 |
Java] Do it 자바 프로그래밍 입문 요약 (셋째마당 - 11) (0) | 2019.06.18 |