⊗jsSpREEP 129 of 294 menu

JavaScript에서 정규 표현식 내부의 캡처 그룹

캡처 그룹의 내용은 치환 문자열뿐만 아니라 정규 표현식 내부에서도 접근할 수 있습니다: 우리는 어떤 내용을 캡처 그룹에 넣은 다음, 정규 표현식 안에서 바로, 그 자리에 해당 캡처 그룹의 내용이 와야 한다고 명시할 수 있습니다.

캡처 그룹의 내용은 번호가 매겨져 있으며, 번호 앞에 백슬래시가 붙습니다. 예를 들어, 첫 번째 캡처 그룹은 이렇게 접근할 수 있습니다: \1, 두 번째 캡처 그룹은 이렇게 - \2, 세 번째 - \3, 이런 식으로 계속됩니다.

위에 쓰여진 모든 내용이 아직은 여러분께 매우 모호하게 느껴질 것이라고 확신합니다. 이것은 놀라운 일이 아닙니다. 캡처 그룹은 정규 표현식에서 가장 이해하기 어려운 부분이기 때문입니다. 예제를 통해 알아봅시다.

예제

다음과 같은 문자열이 있다고 가정해 봅시다:

let str = 'aa bb cd ef';

이 문자열에서 연속으로 동일한 두 글자가 나오는 모든 부분을 찾아봅시다. 문제를 해결하기 위해 임의의 글자를 찾아 캡처 그룹에 넣은 다음, 다음 문자가 해당 캡처 그룹의 내용인지 확인하는 방식으로 하겠습니다:

let res = str.replace(/([a-z])\1/g, '!');

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

'! ! cd ef'

예제

다음과 같은 문자열이 있다고 가정해 봅시다:

let str = 'asxca buzxb csgd';

첫 글자와 마지막 글자가 동일한 모든 단어를 찾아봅시다. 문제를 해결하기 위해 다음 패턴을 작성하겠습니다: 글자, 그 다음 하나 이상의 글자, 그리고 마지막에 첫 번째 글자와 동일한 글자:

let res = str.replace(/([a-z])[a-z]+\1/g, '!');

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

'! ! csgd'

실습 문제

다음 문자열이 주어졌을 때:

let str = 'aaa bbb ccc xyz';

동일한 글자가 세 번 연속으로 나오는 모든 부분 문자열을 찾으세요.

다음 문자열이 주어졌을 때:

let str = 'a aa aaa aaaa aaaaa';

동일한 글자가 두 번 이상 연속으로 나오는 모든 부분 문자열을 찾으세요.

다음 문자열이 주어졌을 때:

let str = 'aaa aaa bbb bbb ccc ddd';

동일한 단어가 두 번 연속으로 나오는 모든 부분 문자열을 찾으세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부