我目前正在編寫一個正則表達式,它將允許我使用JavaScript編寫的基本條件if/else系統。 (我知道有可能是更容易的方法來做到這一點!)用正則表達式匹配if/else語句
這是我需要的工作內容:
{?if language = german}Hallo!{?else}Hello!{?endif}
{?if language = german}{#greeting}{?endif}
我已經寫/{\?if ([^{}]+)}(.+)(?:{\?else})?(.+)?{\?endif}/g
不幸的是只匹配的這一部分。到目前爲止,我一直在使用RegExr進行測試。
我預期的輸出,使用輸出表達式1: $1\n2: $2\n3: $3\n
,應該是:
1: language = german
2: Hallo!
3: Hello!
1: language = german
2: {#greeting}
3:
不幸的是,我得到這個:
1: language = german
2: Hallo!{?else}Hello!
3:
1: language = german
2: {#greeting}
3:
我在做什麼錯在這裏?我對編寫正則表達式相對來說比較陌生,所以我認爲這是一種方式,而我只是沒有正確地做。
我同意,有更簡單的方法來做到這一點!但是,+1是一個很好的明確問題。 – Smandoli 2014-08-29 21:30:04
嘗試使用非貪婪量詞。由於'else'是可選的,貪婪的量詞已經過去了。 – Barmar 2014-08-29 21:30:17