정규식에서 대체(alternation) 패턴이란?
JavaScript 정규식(RegExp)에서 지정된 여러 단어 중 하나라도 일치시키고 싶을 때는 파이프(|) 기호를 사용한 그룹 패턴을 활용합니다. 이 기법을 '교차(alternation)'라고 부르며, OR 조건처럼 동작합니다.
기본 패턴은 다음과 같습니다.
(foo|bar|baz)
위 패턴은 문자열에서 "foo", "bar", "baz" 중 어느 하나와 일치하는 부분을 모두 찾아냅니다. 괄호()는 그룹을 만들어 패턴의 범위를 명확히 하고, 파이프(|)는 각 대체 항목을 구분하는 역할을 합니다.
예제 코드
아래 예제는 문장에서 "one", "two", "three" 중 하나에 해당하는 단어를 전부 찾아 출력합니다. 플래그 g(global)를 함께 사용하면 첫 번째 일치 항목뿐 아니라 문자열 내의 모든 일치 항목을 반환받을 수 있습니다.
<html>
<head>
<title>JavaScript Regular Expression</title>
</head>
<body>
<script>
var myStr = "one,one,one, two, three, four, four";
var reg = /(one|two|three)/g;
var match = myStr.match(reg);
document.write(match);
</script>
</body>
</html>
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
one,one,one,two,three
핵심 정리
- 파이프(
|) 기호를 사용하면 여러 대체 텍스트 중 하나와 일치시킬 수 있습니다. - 괄호(
())로 감싸면 그룹화되어 패턴의 적용 범위가 명확해집니다. g플래그를 추가하면 문자열 전체에서 일치하는 모든 항목을 찾을 수 있습니다.