일치하는 그룹만 (순서대로) 유지되지만 임의의 정규식(캡처 그룹이 없는 정규식 포함)과 작동하도록 입력을 다시 작성하는 방법이 JS 정규식 API에 있습니까?
정규식의 예를 들어 /abc([D-F]+)gh([I-K]+)/
和输入 abcFEEDghKIKI
,我想要输出 "FEEDKIKI"
, 이는 캡처된 부분이기 때문입니다.
그러나 입력 정규식은 /([a-zA-Z]+)/
일 수도 있으며 이는 동일한 입력에 대해 원본 텍스트만 반환합니다.
정규 표현식이 /([0-9]+)/
이면 빈 문자열이 반환됩니다.
정규식은 도구에 의해 생성되지만 정규식이 많고 다양한 수의 캡처 그룹에 대한 특수 사례 코드를 원하지 않습니다.
이상적으로는 어떻게든 입력에서 일치하는 길이에 액세스할 수도 있습니다.
replace()
(또는 유사한)에 전달된 콜백을 통해 이 작업을 수행할 수 있는 방법이 있다고 가정하고 있지만 캡처 그룹의 인덱스를 가져오는 것이 가능한지/가능한지(또는 JS에서 필요한지) 확실하지 않습니다.
기본적으로 저는 그룹을 반복하고 캡처 그룹의 시작/끝 인덱스를 찾을 수 있는 Java의 MatchResult
API를 통해 수행할 수 있는 작업을 복제하려고 합니다. < /p>
미리 감사드립니다!
발견: JavaScript 정규식에 액세스하는 방법은 무엇입니까? (적어도 처음에는)
exec()
를 사용하면 내가 원하는 대로 작동할 것 같습니다.