我有一个正则表达式,我想在SQL语句中找到所有空字符串(并用NULL替换它们)。
这样:
INSERT INTO sometable (F1,F2,F3,F4,F5) VALUES ('','',"xxx's",'','')
成为这个:
INSERT INTO sometable (F1,F2,F3,F4,F5) VALUES (NULL,NULL,"xxx's",NULL,NULL)
我想确定我只更新了VALUES()数组,这就是我所提到的,但是这只匹配''的最后一次出现,而不是其他3个空字符串。
/VALUES.*\(.*('').*\)/
这可能吗?
答案 0 :(得分:1)
哇。这看起来很危险哈哈。
我认为这样可行:
myString.replace(/VALUES.*\(.*\)/, function (values) {
return values.replace(/''/g, 'null');
});
虽然技术上仍然是2个正则表达式,但你可以用es6制作一个单行程:)
myString.replace(/VALUES.*\(.*\)/, str => str.replace(/''/g, 'null'));