我有一個SQL SELECT與許多行,每行看起來是這樣的轉儲:正則表達式不匹配的數據和日期
07/11/2011 16:48:08,07/11/2011 16:48:08,'YD','MANUAL',0,1,'text','text','text','text',,,,'text',,,0,0,
我想要做的兩件事情到每一行:
- 替換所有日期Oracle的
sysdate
函數。日期也可以不帶小時(如07/11/2011
)。 - 與
null
串
這裏替換所有空值是我的嘗試:
$_ =~ s/,(,|\n)/,null$1/g; # Replace no data by "null"
$_ =~ s/\d{2}\/\d{2}\/d{4}.*?,/sysdate,/g; # Replace dates by "sysdate"
但是,這將改變字符串:雖然我希望它是
07/11/2011 16:48:08,07/11/2011 16:48:08,'YD','MANUAL',0,1,'text','text','text','text',null,,null,'text',null,,0,0,null
sysdate,sysdate,'YD','MANUAL',0,1,'text','text','text','text',null,null,null,'text',null,null,0,0,null
我不明白爲什麼日期不匹配,爲什麼一些,,
不被替換爲null
。
任何見解歡迎,提前致謝。
請提供正確的預期輸出。 – FailedDev
對我來說你的日期替換工作,但是,你的空問題似乎是第二個逗號實際上是由第一個匹配消耗的,所以當它繼續尋找下一個匹配時,它從逗號開始,然後離開你與2在一個行。 – Lucas
這些'文本'字段可以包含帶引號的逗號嗎? – TLP