내가 JS에 나뭇 가지/신사 템플릿 파서를 구축하고, 자바 스크립트에 다음 문자열과 일치 할 필요 해요 : 지금까지다음 정규 표현식에 {이스케이프를 어떻게 추가 할 수 있습니까?
{%render "base"%}
{% render "base" with {"color":"red0xFF0000", "number": 123} %}
I가 다음과 같은 정규 표현식, RegexBuddy 내장과 같이
\{% ?render *"[a-z0-9:._]+" ?((?:with +)({([^\{\}]*)}))? ?%}
을
위의 두 렌더링 태그를 모두 일치 시키지만, 절의 본문에 \{
및 \}
을 이스케이프 할 수 있습니다.
나는 지금 모든 것을 시도했지만이 100 % 작동하지 않습니다. 내가 예를 들어과 같이 중괄호를 추가 할 때 :
{% render "base" with {"color":"red\{0xFF0000\}", "number": 123} %}
을가 red
단지 과거 첫 {
에서 종료 사촌 문자열은 일치하지 않습니다.
기본적으로 정규 표현식을 일치 시키길 원하지만 앞에는 \
이 붙어 있습니다.
아이디어가 있으십니까?
왜 당신이 부정적 예측을 사용하지 않는''또는 옵션 그룹 (\\?!)'(\\\})? ' –
나는 그것을 시도하고 있지만 그 곳을 미끄러 뜨릴 곳이 확실하지 않다. –
FWIW, 정규 표현식을 전혀 사용하지 않겠다. 적절한 토큰 별 구문 분석기는 IMHO보다 덜 복잡합니다 (그리고 더 효율적일 수 있습니다). – You