따옴표 이외의 인스턴스 일치
이전 가정과 달리 따옴표 안에 없는 특정 정규식의 모든 인스턴스를 일치시키는 것이 가능합니다. 이스케이프된 따옴표까지 고려하여 정규식을 사용하여 문자열의 일부를 처리합니다.
정규식 솔루션
이를 달성하려면 각 단어가 다음과 같은지 확인하는 예측 어설션을 활용하세요. 따옴표 외부: 뒤에 짝수 개의 따옴표가 있을 때 발생합니다. 아래 정규식은 이 패턴을 캡처합니다.
\+(?=([^"]*"[^"]*")*[^"]*$)
이스케이프된 따옴표 처리
이스케이프된 따옴표를 처리하려면 백슬래시를 무시하고 이스케이프되지 않은 다음 따옴표로 이동하도록 표현식을 수정하세요. :
\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
이렇게 하면 이스케이프된 따옴표가 여는 따옴표로 계산되지 않습니다.
.split() 및 .replace()를 사용한 JavaScript 사용
JavaScript의 .split() 및 .replace() 메소드와 함께 사용하려면 다음 코드를 사용할 수 있습니다.
const input = '+bar+baz"not+or\"+or+\"this+\"foo+bar+';
const replaced = input.replace(/\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)/g, '#');
console.log(replaced); // "#bar#baz\"not+or\"+or+\"this+\"foo#bar#"
위 내용은 이스케이프된 따옴표가 있는 경우에도 따옴표 붙은 문자열 외부의 정규식 인스턴스를 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!