我建立在JS一根樹枝/神社模板解析器,並且需要在JavaScript匹配以下字符串:如何添加轉義 {到以下正則表達式?
{%render "base"%}
{% render "base" with {"color":"red0xFF0000", "number": 123} %}
到目前爲止,我有以下的正則表達式,如建於使用RegexBuddy:
\{% ?render *"[a-z0-9:._]+" ?((?:with +)({([^\{\}]*)}))? ?%}
管理上面的兩個渲染標籤,但是,我想允許轉義\{
和\}
與{...}
條款的主體。
我已經試過了一切,但不能100%的工作。當我添加一個大括號,像這樣的例子:
{% render "base" with {"color":"red\{0xFF0000\}", "number": 123} %}
的字符串不匹配怎麼把它終止在第一{
剛剛過去red
。
基本上,我想要正則表達式匹配,但忽略{
前綴\
。
任何想法?
你爲什麼不使用負前瞻:''或可選的組(\\?!):'(\\\})? ' – 2012-01-03 14:26:34
我正在嘗試,但不知道在哪裏滑。:) – 2012-01-03 14:30:03
FWIW,我不會在這裏使用正則表達式。恕我直言,一個適當的逐個令牌解析器可能不太複雜(也可能更有效)。 – You 2012-01-03 14:34:22