문자열에서 특정 패턴이 여러 번 나타나는 모든 항목을 찾으려면 정규 표현식(Regular Expression)과 match() 메서드를 함께 사용하면 됩니다. 이때 핵심은 정규식 끝에 붙이는 g(global) 플래그입니다. 이 플래그가 있어야 첫 번째 일치 항목뿐만 아니라 문자열 전체에서 발견되는 모든 일치 항목을 배열 형태로 반환받을 수 있습니다.
예제 코드
아래 예제는 문장에서 'JavaScript'와 'typescript'로 시작하는 단어를 모두 찾아내는 함수입니다.
function checkMultipleOccurrences(sentence) {
var matchExpression = /(JavaScript?[^\s]+)|(typescript?[^\s]+)/g;
return sentence.match(matchExpression);
}
var sentence = "This is my first JavaScript Program which is the subset of typescript";
console.log(sentence);
console.log(checkMultipleOccurrences(sentence));위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다. 파일 이름은 본인이 저장한 이름으로 지정하면 됩니다(여기서는 demo70.js 사용).
node fileName.js
실행 결과
프로그램을 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo70.js
This is my first JavaScript Program which is the subset of typescript
[ 'JavaScript', 'typescript' ]
코드 설명
- /.../g 플래그: 정규식 마지막에 붙는
g플래그는 전역 검색(global search)을 의미하며, 이것이 없으면match()는 첫 번째 일치 항목만 반환합니다. - (JavaScript?[^\s]+): 'JavaScript'로 시작하고 그 뒤에 공백이 아닌 문자가 하나 이상 이어지는 패턴을 의미합니다.
- | (OR 연산자): 두 개의 패턴 그룹을 묶어 'JavaScript' 또는 'typescript' 중 어느 쪽이든 일치하면 잡아냅니다.
결과적으로 문장 내에서 조건에 맞는 단어들이 ['JavaScript', 'typescript'] 형태의 배열로 한꺼번에 반환되는 것을 확인할 수 있습니다. 이 방식은 로그 분석, 키워드 추출, 입력값 검증 등 다양한 상황에서 유용하게 활용할 수 있습니다.