2015-09-17 150 views
1

用正則表達式拉出我的頭髮以匹配句柄模板中的鍵。我正在使用i18next-parser。 我的車把文件包含以下內容:正則表達式i18next解析句柄

{{t "Some key"}} 

我運行下面的命令:

i18next index.handlebars -p "{{t\s+(\"(?:[^\\\\\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')?([^}]*)}}" --locales en,zh --output ../locales 

我的輸出區域文件看起來像這樣:

{"\"Some key\"": ""} 

我奮力改變正則表達式,以便在匹配中排除句柄文件中的雙引號。

所需的輸出是

{"Some key": ""} 
+0

什麼預期的輸出? –

+0

預期的輸出是'{「某個鍵」:「」}' –

回答

1

您可以使用以下方法:

{{t\s+(?:\"((?:[^\\\\\"\\\\]|\\\\.)*)\"|'(?:[^'\\\\]|\\\\.)*')?([^}]*)}} 
+0

這很好。我現在想匹配上面的正則表達式或下面的[[a-zA-Z0-9 _](?: t)(?:\\(| \\ s)\\ s *(?:(?:\' ((:(:\\\\\ ')[^ \?'] +)+ [^ \\\\]?)\')|(:???「((:(:\\\\ 「)?[^」] +)+ [^ \\\\])「))/ g' 將兩個正則表達式字符串置於括號內,並且不與管道分開 –