>웹 프론트엔드 >JS 튜토리얼 >JavaScript 정규식에서 캡처된 하위 그룹에 어떻게 액세스합니까?

JavaScript 정규식에서 캡처된 하위 그룹에 어떻게 액세스합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-19 12:12:20895검색

How Do I Access Captured Subgroups in JavaScript Regular Expressions?

JavaScript 정규 표현식에서 일치하는 그룹에 액세스

문자열을 정규 표현식과 일치시킬 때 캡처된 하위 그룹을 검색하는 방법을 이해하는 것이 중요합니다. . JavaScript에서는 정규식 내 캡처 그룹을 사용하여 이를 수행합니다.

다음 예를 고려하세요.

var myString = "something format_abc"; // Target substring: "abc"

var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr); // [" format_abc", "abc"]
console.log(arr[1]); // undefined
console.log(arr[0]); // format_undefined

정의되지 않은 출력 이유:

정규 표현식이 하위 문자열 "abc"와 정확하게 일치하지만 arr[1]에 액세스하면 console.log의 잘못된 인쇄로 인해 정의되지 않은 결과가 반환됩니다. 진술. console.log는 문자열 %A를 서식 지정 자리 표시자로 해석하고 이를 두 번째 매개변수(이 경우 정의되지 않음)로 대체하려고 시도합니다.

일치하는 그룹에 액세스:

일치하는 그룹을 추출하려면 arr[1]을 사용하세요. 이렇게 하면 "abc"가 올바르게 반환됩니다.

여러 일치 항목에 대한 반복(ES2020):

JavaScript 2020에서는 다음 작업에 사용할 수 있는 반복자를 생성하는 matchAll 메서드를 도입했습니다. 문자열의 모든 일치 항목을 반복합니다.

const string = "something format_abc";
const regexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
const matches = string.matchAll(regexp);

for (const match of matches) {
  console.log(match);
  console.log(match.index);
}

이 접근 방식은 더 깔끔한 여러 일치 항목을 처리하는 보다 직관적인 방법입니다.

위 내용은 JavaScript 정규식에서 캡처된 하위 그룹에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.