2015-11-02 103 views
1

我有一個正則表達式,我想在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

我不認爲你可以解決這個用一個正則表達式替換字符串。你能告訴我們你用什麼語言,也許我們可以建議一個優雅的解決方案? –

+0

謝謝,它是JavaScript,是的有幾種方法可以在Javascript中做到這一點,但我想知道是否只能用正則表達式才能實現。 – crankshaft

回答

1

哇。這看起來很危險哈哈。

,我認爲這會工作:

myString.replace(/VALUES.*\(.*\)/, function (values) { 
    return values.replace(/''/g, 'null'); 
}); 

雖然在技術上仍然2個正則表達式,你可以把一個內膽採用ES6 :)

myString.replace(/VALUES.*\(.*\)/, str => str.replace(/''/g, 'null')); 
+0

非常感謝您的幫助,但我只是試圖使用正則表達式來實現它,如果我使用其他js函數,例如split,replace,substr等,有很多方法可以做到這一點。 – crankshaft

相關問題