我正試圖用now()函數替換SQL轉儲中的所有時間戳。所有的時間各不相同,但同比2010年總在編輯器中需要搜索/替換正則表達式的幫助
我想替換:「2010-10-0920:40:00.352298-05」 有:NOW()
有誰知道我的表達可能使用2010年是靜態的?
我正試圖用now()函數替換SQL轉儲中的所有時間戳。所有的時間各不相同,但同比2010年總在編輯器中需要搜索/替換正則表達式的幫助
我想替換:「2010-10-0920:40:00.352298-05」 有:NOW()
有誰知道我的表達可能使用2010年是靜態的?
最簡單的正則表達式將匹配任何字符串開始與2010年,從開盤報價至收盤報價:
/'2010-.*?'/
這個發現開始與2010年的字符串和做了非貪婪比賽進行到第報價,這應該是結束報價,因爲日期不能包含轉義報價。
如果這是不夠具體,你可以限制匹配的字符的類型和數量:
/'2010-[-.0-9:]{15,25}'/
我不能告訴你怎麼不知道你所使用的編輯器中運行這個正則表達式,但在VIM有一個稍微不同的語法非貪婪匹配:
:%s/'2010-.\{-}'/now()/g
嘗試
2010-\d+-\d+:\d+:\d+\.\d+-\d+
或者,如果報價實際上是文本
'2010-\d+-\d+:\d+:\d+\.\d+-\d+'
s/2010-.{23}/now()/g
的一部分,因爲有23個字符「2010-2011」之後。
使用
s/'2010-.{23}'/now()/g
,如果你想擺脫報價以及
。