Rust Choi 2019. 11. 21. 11:30

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자리로 사용