정규 표현식 JavaScript에서 '또는' 명령어
이번 강의에서는
'|' 명령어를 다룰 것입니다. 이는
[ ] 명령어보다 더 강력한
'또는' 버전입니다. 이 명령어는
정규 표현식을 여러 부분으로 나눌 수 있게 해줍니다.
이때, 찾고자 하는 패턴은 정규 표현식의 한 부분이나
다른 부분에 해당할 수 있습니다. 예제를 통해 살펴보겠습니다.
예제
이 예제에서 검색 패턴은 다음과 같습니다: 문자
'a' 세 개 또는 문자 'b' 세 개:
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
결과적으로 변수에는 다음이 저장됩니다:
'! ! abb'
예제
이 예제에서 검색 패턴은 다음과 같습니다: 문자
'a' 세 개 또는 1개 이상의
문자 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
결과적으로 변수에는 다음이 저장됩니다:
'! ! ! ! axx'
예제
이 예제에서 검색 패턴은 다음과 같습니다: 한 글자 이상의 문자 또는 세 자리 숫자:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
결과적으로 변수에는 다음이 저장됩니다:
'! ! ! 1 12 !'
예제
수직 막대는 정규 표현식을 두 부분이 아닌 여러 부분으로 나눌 수 있습니다:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
결과적으로 변수에는 다음이 저장됩니다:
'! ! ! ddd'
예제
수직 막대가 괄호 안에 있으면,
'또는'은 그 괄호 내에서만 작동합니다.
예를 들어, 다음 패턴에 맞는 문자열을 찾아봅시다: 시작 부분에
'a'가 한 번 또는 'b'가 한 번 이상 나오고,
그 다음에 문자 'x'가 두 번 나오는 패턴:
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
결과적으로 변수에는 다음이 저장됩니다:
'! ! ! exx'
실습 문제
다음 문자열이 주어졌습니다:
let str = 'aeeea aeea aea axa axxa axxxa';
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
양쪽 끝에 문자 'a'가 있고,
그 사이에 문자 'e'가 임의의 횟수만큼
또는 문자 'x'가 임의의 횟수만큼 있는 패턴.
다음 문자열이 주어졌습니다:
let str = 'aeeea aeea aea axa axxa axxxa';
다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요:
양쪽 끝에 문자 'a'가 있고,
그 사이에 문자 'e'가 두 번
또는 문자 'x'가 임의의 횟수만큼 있는 패턴.