Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 2.82 KB

RegEx.md

File metadata and controls

64 lines (53 loc) · 2.82 KB

Regular Expression 정리

1. 정규식 메타 문자

메타 문자는 특정한 문자 혹은 문자 계열을 대신하여 표시하는 문자.

메타 문자 의미 예시
^ 문자열의 시작 ^ryan은 문자열의 첫 부분에 ryan이 온 경우에 매치
$ 문자열의 끝 ryan$는 문자열이 ryan으로 끝난 경우에 ryan에 매치
\b 단어의 경계, 공백, 탭, 콤마, 대시 등 \bRyan\b는 ryan의 양 끝에 단어 경계가 오는 경우에만 Ryan에 매치. 따라서 RyanHan의 경우 Ryan은 매치되지 않는다.
\B \b가 아닌 것 \bRyan\B는 Ryan에 매치하지 않지만, RyanHan에 매치
\s 공백 문자 공백, 탭에 매치
\S 공백 문자가 아닌 것 공백 문자가 아닌 모든 문자에 매치
\d 숫자 [0-9] 와 같다
\D 숫자가 아닌 것 [^0-9] 와 같다
\w 알파벳 로마자
\W 알파벳 로마자가 아닌 것
\n, \r 개행 문자 및 캐리지 리턴에 매치
\ Escape
. 문자 하나에 대응

2. 선택 패턴

선택 패턴 의미 예시
| 또는 Ryan|Emily 라고 쓰면 Ryan과 Emily 모두에게 매칭
[...] 대괄호 속 문자 중에 하나에 매칭 [cfh]all 패턴은 call, fall, hall 모두에 매치
[0-9] 숫자
[a-z] 알파벳 소문자
[A-Z] 알파벳 대문자
[ㄱ-힣] 한글 유니코드를 지원하는 정규식에서만
^ Not의 의미 선택 패턴 내에서 ^ 쓰일 때

3. 그룹

괄호()는 그룹을 의미한다.

예시 의미
(tom|pot)ato tomato, potato에 모두 매치되는 패턴
(r|y){3}an r 또는 y가 3개 온 후에 an이 오는 패턴
(r|y){3}an\1 r 또는 y 중 세 글자를 그룹으로 캡쳐하고, an 뒤에 캡쳐한 글자가 반복되는 패턴.
(?: ) 그룹으로 묶어주지만 캡쳐는 하지 않는 그룹

4. 수량 한정자

동일한 개체가 n 개 나오는 경우에 수량 한정자를 뒤에 붙일 수 있다.

표현 의미 예시
? 앞의 개체가 없을 수 있다. ryans?는 ryan과 ryans에 매치
* 앞의 표현이 0개 이상 n\d* n, n1, n100, n9999 등에 매치
+ 앞의 표현이 1개 이상 n\d+ 위의 예시에서 n은 매치되지 않는다.
{n} 앞의 표현이 n개 n\d{3}은 n 뒤에 숫자가 3개 온다는 의미.
{n,} 앞의 표현이 n개 이상
{n,m} 앞의 표현이 n개 이상 m개 이하 수량이 n~m 사이에 있는 조건

*, +는 최대한 매치한다

There are apples and peaches 라는 문장에서
^.*sThere are apples and peaches 전체를 매치하고,

^.*?sThere are apples까지만 매치한다.

*Reference