JavaScript 정규식에서 모든 캡처에 액세스
자바스크립트 정규식에서 여러 그룹을 캡처하려고 할 때 문제가 발생합니다. 캡처가 유지됩니다.
다음 사항을 고려하세요. 예:
"foo bar baz".match(/^(\s*\w+)+$/)
["foo", "bar", "baz"]와 같은 모든 일치 항목을 반환하는 대신 ["baz"]만 반환합니다. 이 동작은 반복되는 캡처 그룹이 이전 캡처를 덮어쓰기 때문에 발생합니다.
이 문제를 해결하려면 대체 접근 방식을 고려하십시오.
예를 들어 < > ;로 분할하는 경우 다음 예를 고려하세요.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!