정규표현식 정리
1. 콤마( . )
. 는 어떤 문자 1개를 가리킨다. ( "줄바꿈 문자(\n)"는 제외)
====================================
표현식 h.t
문자열 hat halt hitheat hot
====================================
표현식 h..t
문자열 hathalt hit heathot
====================================
2. 대괄호 [ ]
[ ] 는 안에 있는 문자중 하나를 가리킨다.
[abc] a,b,c 중 하나
[a-z] 알파벳 소문자 중 하나
[0-9] 숫자 중 하나
[a-zA-Z] 알파벳 소문자나 대문자 중 하나
====================================
표현식 h[aiu]t
문자열 hat het hithot hut
====================================
3. 대괄호와 캐럿 [^ ]
[^ ] 은 안에 있는 문자를 제외한 문자중 하나를 가리킨다.
[^abc] a,b,c 이외의 문자 중 하나
[^a-z] 알파벳 소문자 이외의 문자 중 하나
[^0-9] 숫자 이외의 문자 중 하나
[^a-zA-Z] 알파벳 소문자나 대문자 이외의 문자 중 하나
====================================
표현식 h[^aiu]t
문자열 hathet hit hothut
====================================
3. 별표( * )
* 는 바로 앞에 있는 문자가 0또는 그 이상 반복되는 것을 가리킨다.
====================================
표현식 ha*t
문자열 ht hit hathot haat hut haaaaat
====================================
4. 플러스(+)
+ 는 바로 앞에 있는 문자가 1 또는 그 이상 반복되는 것을 가리킨다.
====================================
표현식 ha+t
문자열 ht hit hat hot haathut haaaaat
====================================
5. 물음표( ?)
? 는 바로 앞에 있는 문자가 0또는 1번 반복되는 것을 가리킨다.
====================================
표현식 ha?t
문자열 ht hit hathot haat hut haaaaat
====================================
6. {n}
{n} 은 바로 앞에 있는 문자가 n번 반복되는 것을 가리킨다.
====================================
표현식 ha{2}t
문자열 ht hit hat hot haat hut haaaaat
====================================
7. {n,}
{n,} 은 바로 앞에 있는 문자가 n번 이상 반복되는 것을 가리킨다.
{0,}는 별표(*)와 같은 의미이다.
{1,}는 더하기(+)와 같은 의미이다.
{0,1}는 물음표(?)와 같은 의미이다.
====================================
표현식 ha{2,}t
문자열 ht hit hat hot haat hut haaaaat
====================================
8. {n,m}
{n,m} 은 바로 앞에 있는 문자가 n번 이상, m번 이하 반복되는 것을 가리킨다.
====================================
표현식 ha{2,4}t
문자열 ht hat haat haaat haaaat haaaaat
====================================
9. 캐럿( ^)
^ 은 줄의 제일 처음(시작위치)을 가리킨다.
====================================
표현식 ^h.t
문자열 hat hit hot
====================================
10. 달러( $)
$ 는 줄의 제일 마지막(끝 위치)을 가리킨다.
====================================
표현식 h.t$
문자열 hat hit hot
====================================
11. Group ( )
특정 패턴을 묶어서 반복 기호등과 함께 사용.
여러 문자 중 하나만 선택적으로 매칭하고자 할 때 사용.
====================================
표현식 ba(na)*
문자열 ba na banabanana nana bananana
====================================
====================================
표현식 ba(na)+
문자열 ba na bana banana nana bananana
결 과 ba na wow wow nana wow
====================================
12. 선택 지정 ( | )
괄호로 묶인 그룹 내에서 | 으로 나뉘어진 여러 개의 패턴 중 하나와 일치하는 것을 가리킨다.
====================================
표현식 (eg|sa|be)g
문자열 egg eng sag sig beg bag
====================================
13. Group 참조 \숫자
Group으로 지정된 내용을 뒤에 ‘\숫자’의 형식으로 재 사용하는데 사용.
====================================
표현식 (h.t)\1
문자열 hathat hitbit hothot hutcut
====================================
14. 반복 문자 탐지 – Greedy, Lazy
반복 문자 개수를 지정하는 방법은 크게 Greedy방식과 Lazy방식으로 나뉘어진다.
Greedy 방식은 가능한 최대의 것을 선택하고, Lazy방식은 가능한 최소의 것을 선택한다.
Greedy 방식뒤에 ?을 붙이면 Lazy방식이 된다.
-Greey 방식
====================================
표현식 <.*>
문자열 Regex <b>Greedy</b> Style
====================================
-Lazy방식
====================================
표현식 <.*?>
문자열 Regex<i>Lazy</i> Style
====================================
- 사용 예
==================
Greedy | Lazy
==================
* | *?
+ | +?
? | ??
{n} | {n}?
{n,} | {n,}?
{n,m} | {n,m}?
==================
15.주요 Escape 문자 목록
\t 탭 문자, Tab, \u0009
\r 줄 바꿈 문자, Carriage Return, \u000D
\n 줄 바꿈 문자, Line Feed, \u000A
\s 공백 문자, White-Space Character, \t \r \n 스페이스 포함
\S \s 이외의 문자
\d 숫자, [0-9] 과 같은 의미
\D \d 이외의 문자, [^0-9] 과 같은 의미
\w Word Character, [a-zA-Z0-9_] 과 한글 일본어 중국어 등의 유니코드 문자 포함
\W \w 이외의 문자
\b [ ] 안에서 사용될 때는 백스페이스 문자, Backspace, \u0008
[ ] 밖에서 사용될 때는 \w 과 \W 사이의 경계, Word Boundary
치 환 Pattern에서 사용될 때는 항상 백스페이스 문자
\\ \ 문자 자체를 가리킬 때 사용
비슷한 사용법 \. \* \+ \? \^ \$ \( \) \{ \} \[ \]
\u0020 16진수 Unicode 문자, 항상 4자리로 사용
\x20 16진수 ASCII 문자, 항상 2자리로 사용