정규 표현식 JavaScript에서 '또는' 명령어

이번 강의에서는 '|' 명령어를 다룰 것입니다. 이는 [ ] 명령어보다 더 강력한 '또는' 버전입니다. 이 명령어는 정규 표현식을 여러 부분으로 나눌 수 있게 해줍니다. 이때, 찾고자 하는 패턴은 정규 표현식의 한 부분이나 다른 부분에 해당할 수 있습니다. 예제를 통해 살펴보겠습니다.

예제

이 예제에서 검색 패턴은 다음과 같습니다: 문자 'a' 세 개 또는 문자 'b' 세 개:

javascriptlet str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');

결과적으로 변수에는 다음이 저장됩니다:

javascript'! ! abb'

예제

이 예제에서 검색 패턴은 다음과 같습니다: 문자 'a' 세 개 또는 1개 이상의 문자 'b':

javascriptlet str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');

결과적으로 변수에는 다음이 저장됩니다:

javascript'! ! ! ! axx'

예제

이 예제에서 검색 패턴은 다음과 같습니다: 한 글자 이상의 문자 또는 세 자리 숫자:

javascriptlet str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');

결과적으로 변수에는 다음이 저장됩니다:

javascript'! ! ! 1 12 !'

예제

수직 막대는 정규 표현식을 두 부분이 아닌 여러 부분으로 나눌 수 있습니다:

javascriptlet str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');

결과적으로 변수에는 다음이 저장됩니다:

javascript'! ! ! ddd'

예제

수직 막대가 괄호 안에 있으면, '또는'은 그 괄호 내에서만 작동합니다.

예를 들어, 다음 패턴에 맞는 문자열을 찾아봅시다: 시작 부분에 'a'가 한 번 또는 'b'가 한 번 이상 나오고, 그 다음에 문자 'x'가 두 번 나오는 패턴:

javascriptlet str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');

결과적으로 변수에는 다음이 저장됩니다:

javascript'! ! ! exx'

실습 문제

Задание 1

다음 문자열이 주어졌습니다:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요: 양쪽 끝에 문자 'a'가 있고, 그 사이에 문자 'e'가 임의의 횟수만큼 또는 문자 'x'가 임의의 횟수만큼 있는 패턴.

Задание 2

다음 문자열이 주어졌습니다:

javascriptlet str = 'aeeea aeea aea axa axxa axxxa';

다음 패턴에 맞는 문자열을 찾는 정규 표현식을 작성하세요: 양쪽 끝에 문자 'a'가 있고, 그 사이에 문자 'e'가 두 번 또는 문자 'x'가 임의의 횟수만큼 있는 패턴.