마침표와 이스케이프
정규식에서 마침표는 줄바꿈 문자를 제외한 모든 문자에 일치하는 특수 문자입니다. 이 메타 문자는 입력이 어떤 문자이든 상관하지 않고 소비하려 할 때 주로 사용합니다. 문자열에서 우편번호만 필요하고 다른 것은 아무것도 필요하지 않다고 칩시다.
const input = 'Address: 333 Main St., Anywhere, NY, 55532. Phone: 555-555-2525.';
const match = input.match(/\d{5}.*/);
// '55532. Phone: 555-555-2525.'
// 우편번호만 찾을려면 /\d{5}/
하지만 마침표 자체가 필요할 때도 있습니다. 예를 들어 도메인 이름이나 IP 주소에는 마침표가 들어갑니다. 그 밖에도 아스테리스크나 괄호처럼 정규식 메타 문자를 글자 그대로 찾아야 할 때가 있습니다. 정규식 특수 문자를 이스케이프해서 일반 문자로 사용하려면 그 앞에 역슬래시를 붙이면 됩니다.
const equation = '(2 + 3.5) * 7';
const match = equation.match(/\(\d \+ \d\.\d\) \* \d/);
// '(2 + 3.5) * 7'
TIP 독자 여러분 중 상당수는 파일을 찾을 때 *.txt 처럼 와일드카드를 써서 모든 텍스트 파일을 검색해 본 경험이 있을 겁니다. *는 무엇이든 다 허용한다는 의미에서 메타 문자라고 할 수 있습니다. 하지만 이 와일드카드에 익숙하다면 정규식에서 *를 쓸 때는 주의해야 합니다. 정규식에서 *는 완전히 다른 의미이고, 단독으로 쓸 수도 없으니까요. 파일 이름에 쓰는 와일드카드 *는 정규식의 마침표 메타 문자에 더 가깝습니다. 정규식에서는 단 한 글자에만 일치한다는 점을 제외하면 말입니다.