2015-09-17 5 views
1

Вытягивание волос с помощью регулярного выражения, чтобы соответствовать ключу из шаблона руля. Я использую i18next-parser. Мой рули файл содержит следующее:Regex i18next parse handlebars

{{t "Some key"}} 

Я бегу следующую команду:

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

Мой выходной файл локали выглядит следующим образом:

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

Я изо всех сил, чтобы изменить regex, так что двойные кавычки в файле handlebars исключаются из совпадения.

Нужный выход

{"Some key": ""} 
+0

Что ожидаемый результат? –

+0

Ожидаемый результат: '{" Some key ":" "}' –

ответ

1

Вы можете использовать следующее:

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

это хорошо работает. Теперь я хочу совместить указанное выше регулярное выражение или следующее: [^ a-zA-Z0-9 _] (?: t) (?: \\ (| \\ s) \\ s * (?: (?: \ (((: \\\\\ ') [^ \?] +) + [^ \\\\]?) \') | (?:? "(((: \\\\ ")? [^"] +) + [^ \\\\]) "))/g' размещение обеих строк регулярных выражений внутри скобок, разделенных трубой, не работает –