我需要更改 SQL 檔案中許多值的日期格式。
有些日期值采用“DD-MON-RR”格式,但我需要它們采用“YYYY-MM-DD”格式。
在我的檔案中,我有 21 世紀和 20 世紀的日期:
to_date('01-Nov-20','DD-MON-RR'),to_date('28-Dec-99','DD-MON-RR')
我正在尋找一個正則運算式來查找和替換這些值。
這是我的第一次嘗試,即使在 20 世紀也有效:
FIND:
(\d{2})-(\w{3})-(([0-4])\d|[5-9]\d)
REPLACE:
(?{4}20:19)\3-\2-\1
這有助于重新排列元素的位置,但我必須用相關數字替換所有月份。
現在我正在尋找一些東西來查找和替換同一個正則運算式中的月份名稱:
FIND:
(\d{2})-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-(([0-4])\d|[5-9]\d)
現在我在嘗試撰寫替換運算式時遇到問題,有人可以幫助我嗎?
謝謝
uj5u.com熱心網友回復:
您可以定義盡可能多的月份(月份縮寫),而不是(\w{3})在條件替換模式中使用更多條件。
您可以使用
查找內容:(\d{2})-(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-(([0-4])\d|[5-9]\d)
替換為:(?{15}20:19)$14-(?{13}12:?{12}11:?{11}10:?{10}09:?{9}08:?{8}07:?{7}06:?{6}05:?{5}04:?{4}03:?{3}02:?{2}01)-$1
看演示截圖:

因此,(\w{3})被替換為(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)),具有 12 個捕獲組的非捕獲組。您可以對其進行編輯,例如,還支持Sept、在t?之后Sep添加或在e?之后添加Jun也支持June。
調整替換模式以考慮新引入的 12 個捕獲組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/350573.html
