我没有正则表达式大师,而且我非常确定正则表达式是这个例子中所需要的。
我目前有一个像这样的文本替换任务:
configSeed: {
src: ['src/*/local/app-config.js'],
overwrite: true,
replacements: [
{
from: 'var CONFIG_SEED_STRING = null;',
to: 'var CONFIG_SEED_STRING = "{"some_stringified_dynamic_json":"values"}";'
}
]
}
第一次保存配置文件时工作正常,上面的字符串被替换。
但是,一旦替换了字符串,对配置的进一步更改就不会应用替换,因为显然不再找到null
。
null
是我的通配符值所在的位置,值可以是null
(最初)或后续替换有效的JSON字符串。
如果我对所需的通配符的假设是正确的,那么在保存时会触发递归吗?或者Grunt是否有针对这种情况的内置保护? [编辑:我通过用相同的值替换字符串来测试这一点,不会发生递归。]
因此,假设在我想要的地方使用通配符是安全的,我可以请求替换正则表达式值吗?
替代解决方案也很受欢迎,例如我的代码库不变,我可以完全替换行代码,如果可能的话。
感谢您提供的任何帮助。
答案 0 :(得分:0)
configSeed: {
src: ['src/*/local/app.js'],
overwrite: true,
replacements: [
{
from: /var CONFIG_SEED_STRING = '[^']*'/g,
to: 'var CONFIG_SEED_STRING = \'{"foo":"bar"}\''
},
{
from: 'var CONFIG_SEED_STRING = null',
to: 'var CONFIG_SEED_STRING = \'{"foo":"bar"}\''
}
]
}
不完美,因为我有两个来自/ tos,但它在{em>单引号 null
的字符串值之间捕获CONFIG_SEED_STRING
和有效的JSON数据。
写正则表达式的即时奖励时间!我允许自己15分钟的Youtube工作。