JavaScript 정규 표현식의 중괄호
'+', '*', '?' 연산자는
유용하지만, 정확한 반복 횟수를 지정할 수는 없습니다.
이 경우 {} 연산자가 도움이 될 것입니다.
작동 방식은 다음과 같습니다: {5}
- 5회 반복, {2,5} – 2회부터 5회까지 반복
(양쪽 포함), {2,}
- 2회 이상 반복. {,2}와 같은 형식은
없다는 점에 주의하세요. 예제를 살펴보겠습니다:
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'가 1회 또는 2회,
문자 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'xx ! ! xaaax'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'가 2회 이상,
문자 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'xx xax ! !'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'x', 문자 'a'가 3회,
문자 'x':
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'xx xax xaax !'
예제
이 예제에서 검색 패턴은 다음과 같습니다:
문자 'a'가 10회:
let str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'aaa ! aaa'
예제
이 예제에서 코드 작성자는 다음과 같은 패턴을 원했습니다:
문자 'x', 문자 'a'가 3회 이하,
문자 'x',
하지만 안타깝게도 {,3}은 작동하지 않습니다.
명시적으로 지정해야 합니다:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'xx ! ! !'
예제
0도 허용됩니다:
let str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');
결과 변수에는 다음과 같은 문자열이 저장됩니다:
'! ! ! !'
실습 문제
문자열이 주어집니다:
let str = 'aa aba abba abbba abbbba abbbbba';
문자열
'abba', 'abbba', 'abbbba'
만을 찾는 정규 표현식을 작성하세요.
문자열이 주어집니다:
let str = 'aa aba abba abbba abbbba abbbbba';
'b'가 3번 이하(포함)로 나타나는
'aba' 형태의 문자열을 찾는 정규 표현식을 작성하세요.
문자열이 주어집니다:
let str = 'aa aba abba abbba abbbba abbbbba';
'b'가 4번 이상(포함)으로 나타나는
'aba' 형태의 문자열을 찾는 정규 표현식을 작성하세요.