정규표현식 - 메타문자

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