메타 문자는 특정한 문자 혹은 문자 계열을 대신하여 표시하는 문자.
메타 문자 | 의미 | 예시 |
---|---|---|
^ | 문자열의 시작 | ^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 | |
. | 문자 하나에 대응 |
선택 패턴 | 의미 | 예시 |
---|---|---|
| | 또는 | Ryan|Emily 라고 쓰면 Ryan과 Emily 모두에게 매칭 |
[...] | 대괄호 속 문자 중에 하나에 매칭 | [cfh]all 패턴은 call, fall, hall 모두에 매치 |
[0-9] | 숫자 | |
[a-z] | 알파벳 소문자 | |
[A-Z] | 알파벳 대문자 | |
[ㄱ-힣] | 한글 | 유니코드를 지원하는 정규식에서만 |
^ | Not의 의미 | 선택 패턴 내에서 ^ 쓰일 때 |
괄호()는 그룹을 의미한다.
예시 | 의미 |
---|---|
(tom|pot)ato | tomato, potato에 모두 매치되는 패턴 |
(r|y){3}an | r 또는 y가 3개 온 후에 an이 오는 패턴 |
(r|y){3}an\1 | r 또는 y 중 세 글자를 그룹으로 캡쳐하고, an 뒤에 캡쳐한 글자가 반복되는 패턴. |
(?: ) | 그룹으로 묶어주지만 캡쳐는 하지 않는 그룹 |
동일한 개체가 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
라는 문장에서
^.*s
는There are apples and peaches
전체를 매치하고,
^.*?s
는There are apples
까지만 매치한다.