JavaScript 정규식에서 여러 그룹 캡처
JavaScript에서 정규 표현식으로 작업할 때 문자열 내에서 여러 일치 그룹을 캡처할 수 있습니다. . 그러나 캡처하고 검색할 수 있는 그룹 수에는 제한이 있습니다.
다음 JavaScript 정규 표현식을 고려하십시오.
"foo bar baz".match(/^(\s*\w+)+$/)
이 정규 표현식은 전체 그룹을 포함하는 배열을 반환할 것으로 예상할 수 있습니다. 문자열 "foo bar baz" 및 각 개별 단어:
["foo bar baz", "foo", " bar", " baz"]
그러나 정규식은 실제로 마지막 단어만 반환합니다. 캡처된 일치:
["foo bar baz", " baz"]
이 동작은 대부분의 정규식 버전에서 반복 캡처 그룹의 마지막 캡처만 유지되기 때문에 발생합니다. JavaScript에서 캡처 그룹을 반복하면 일치 항목당 정확히 지정된 수의 문자열만 캡처할 수 있습니다.
이 제한을 극복하기 위한 몇 가지 옵션이 있습니다.
예:
문자열 일치 <몇마디;여기> 다단계 일치를 사용하는 텍스트:
var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>;"; var r = /<(\w+(;\w+)*)>/g; var match; while ((match = r.exec(text)) != null) { print(match[1].split(";")); }
이 접근 방식은 두 가지 수준의 일치를 사용하여 문자열에서 개별 단어를 추출합니다.
위 내용은 반복이 마지막 일치만 유지하는 경우 JavaScript 정규식에서 여러 그룹을 어떻게 캡처할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!