정규표현식 - 메타문자
Created:
메타문자란 정규표현식에서 특수한 의미가 있는 문자를 말한다. 만약 메타 문자를 상수 문자로 사용하고 싶다면 문자 앞에 (역슬래시)를 붙이면 된다.
. (점)
newline(\n)을 제외한 임의의 문자를 찾는다.
/.+/.exec("hello world")[0]
// "hello world"
// Dot(.)은 예제의 모든 문자열에 해당 된다.
\ (역슬래시)
문자의 특수 의미를 없앤다.
/\.+/.exec("hello world")
// null
// Dot(.)을 하나의 문자로 인식 하기때문에 아무것도 찾을 수 없다.
| (세로줄)
선택(OR)
var regExp = /w|h/g;
regExp.exec("hello world");
// "h"
// w 또는 h가 있을경우 찾기 때문에 먼저 발견되는 h를 찾는다.
regExp.exec("hello world");
// "w"
// 그다음에 있는 w를 찾는다.
regExp.exec("hello world");
// null
// 더이상 찾을 수 없으므로 null을 반환한다.
^ (악센트 기호)
행의 시작을 나타내는 앵커
/^world/.exec("hello world");
// null
// 문장의 시작이 world가 아니므로 찾을 수 없다.
$ (달러 기호)
행의 끝을 나타내는 앵커
/hello$/.exec("hello world");
// null
// 문장의 끝이 hello가 아니므로 찾을 수 없다.
? (물음표)
0번 또는 한번을 나타내는 수량자
/hello!?/.exec("hello world");
// "hello"
// !가 없거나 한번 있을 수 있으므로 hello를 찾을 수 있다.
* (별표)
0번 이상을 나타내는 수량자
/hello!*/.exec("hello world");
// "hello"
// !가 없거나 한번 이상도 가질 수 있으므로 hello를 찾을 수 있다.
+ (덧셈기호)
한 번 이상을 나타내는 수량자
/hello!+/.exec("hello world");
// null
// hello뒤에 !(느낌표)가 한번 이상 나와야 하므로 hello를 찾을 수 없다.
[] (대괄호)
문자 클래스
- [0-9], [a-z] 등으로 숫자, 문자등을 찾을 때 축약해서 찾을 수 있다.
/[a-z]+/.exec("hello world");
// "hello"
// 문자열 시작부터 공백이 나오기 전까지인 hello를 찾을 수 있다.
{} (중괄호)
수량자
/hel{2,3}o/.exec("hello world");
// "hello"
// hello사이에 l이 2개 이상 3개 이하 있으므로 hello를 찾을 수 있다.
() (소괄호)
그룹지정
- 두가지 이상의 패턴중 하나를 선택할 때 사용한다
- 역참조 할 때 사용한다.
/(H|h)ello/.exec("hello world")
// "hello"
// Hello나 hello일때 찾을 수 있다.
Comments