parsinghtml元素中的data-i18n属性

我试图从自定义正则expression式的HTML文件(也与默认的i18n.t函数)parsing'data-i18n'属性:

i18next modules/ -o lang/ -r '[^a-zA-Z0-9](?:(?:t)|(?:i18n\\.t)|(?:data-i18n))(?:\\(|\\s|=)\\s*(?:(?:\'((?:(?:\\\\\')?[^\']+)+[^\\\\])\')|(?:"((?:(?:\\\\")?[^"]+)+[^\\\\])"))' 

parsing器可以在这里find: https : //github.com/karellm/i18next-parser

来自文档的命令:

 i18next /path/to/file/or/dir -r "(.*)" 

正则expression式已经在regexpal和debuggex上进行了testing,它修改了正确的标签:

 [^a-zA-Z0-9](?:(?:t)|(?:i18n\.t)|(?:data-i18n))(?:\(|\s|=)\s*(?:(?:'((?:(?:\\')?[^']+)+[^\\])')|(?:"((?:(?:\\")?[^"]+)+[^\\])")) 

我试图以各种forms逃避正则expression式string,但它不工作。 如何正确地做到这一点?

考虑使用吞咽如下:

 var i18next = require("i18next-parser"); var gulp = require("gulp"); gulp.task("i18next-parse", function () { gulp.src("js/modules/**") .pipe(i18next({locales: ['en', 'hu'], parser: '[^a-zA-Z0-9](?:(?:t)|(?:i18n\\.t)|(?:data-i18n))(?:\\(|\\s|=)\\s*(?:(?:\'((?:(?:\\\\\')?[^\']+)+[^\\\\])\')|(?:"((?:(?:\\\\")?[^"]+)+[^\\\\])"))', output: "js/lang"}) .on('reading', function(path) { console.log("Reading: " + path); }) .on('writing', function(path) { console.log("Writing: " + path); })) .pipe(gulp.dest('js/lang')); }); 

您可以通过这种方式传递正则expression式(这是您尝试传递命令行时的问题)。