LHJ

I'm a FE developer.

17.11 마침표와 이스케이프

25 May 2020 » js_lj

17.11 마침표와 이스케이프

정규식에서 마침표줄바꿈 문자를 제외한 모든 문자에 일치하는 특수 문자입니다.
이 메타 문자는 입력이 어떤 문자이든 상관하지 않고 소비하려 할 때 주로 사용합니다.
문자열에서 우편번호만 필요하고 다른 것은 아무것도 필요하지 않다고 칩시다.

const input = "Address: 333 Main St., Anywhere, NY, 55532. Phone: 555-555-2525.";
const match = input.match(/\d{5}.*/);

하지만 마침표 자체가 필요할 때도 있습니다.
예를 들어 도메인 이름이나 IP 주소에는 마침표가 들어갑니다.
그밖에도 아스테리스크(*)나 괄호처럼 정규식 메타 문자를 글자 그대로 찾아야 할 때가 있습니다.
정규식 특수 문자를 이스케이프해서 일반 문자로 사용하려면 그 앞에 역슬래시를 붙이면 됩니다.

const equation = "(2 + 3.5) * 7";
const match = equation.match(/\(\d \+ \d\.\d\) \* \d/);

TIP
독자 여러분 중 상당수는 파일 찾을 때 *.txt처럼 와일드카드를 써서 모든 텍스트 파일을 검색해 본 경험이 있을 겁니다.
*는 무엇이든 다 허용한다는 의미에서 메타 문자라고 할 수 있습니다.
하지만 이 와일드카드에 익숙하다면 정규식에서 *를 쓸 때는 주의해야 합니다.
정규식에서는 *는 완전히 다른 의미이고, 단독으로 쓸 수도 없으니까요.
파일 이름에 쓰는 와일드카드 *는 정규식의 마침표 메타 문자에 더 가깝습니다.
정규식에서는 단 한 글자에만 일치한다는 점을 제외하면 말입니다.