i18next解析Regex OR运算符

时间:2015-09-29 12:50:33

标签: regex i18next

我有以下正则表达式字符串

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

成功获取了一个把手字符串{{t "Some key"}}并创建了一个输出

{"Some key": ""}使用命令

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

现在我也希望能够使用相同的输出解析像t('某些键')这样的javascript函数。我知道这个正则表达式字符串是

[^a-zA-Z0-9_](?:t)(?:\\(|\\s)\\s*(?:(?:\'((?:(?:\\\\\')?[^\']+)+[^\\\\])\')|(?:"((?:(?:\\\\"‌​)?[^"]+)+[^\\\\])"))/g

但是当我尝试将两个正则表达式字符串放在由管道分隔的括号中时,我得到一个关于意外括号的错误 -

i18next index.handlebars -p "(?:{{t\s+(?:\"((?:[^\\\\\"\\\\]|\\\\.)*)\"|'(?:[^'\\\\]|\\\\.)*')?([^}]*)}})|(?:[^a-zA-Z0-9_](?:t)(?:\\(|\\s)\\s*(?:(?:\'((?:(?:\\\\\')?[^\']+)+[^\\\\])\')|(?:"((?:(?:\\\\"‌​)?[^"]+)+[^\\\\])"))/g)" --locales en,zh --output ../locales

0 个答案:

没有答案