使用正規表示式遮罩可識別資訊
你也可以使用 REGEXP_REPLACE() 搭配正規表示式來取代字串中的樣式。這個函式與 REPLACE() 類似。其函式簽章為 REGEXP_REPLACE(source, pattern, replace, flags)。
pattern是要在source字串中比對的樣式字串。replace是用來取代樣式的字串。flags是用來控制比對方式的選用字串。
例如,REGEXP_REPLACE(xyz, '\d', '_', 'g') 會將欄位 xyz 中的任何數字字元(\d)取代為底線(_)。g(「global」)旗標會確保每一個符合的項目都被取代。
為了在新的網頁報表中保護違規停車收件者的隱私,必須將 plate_id 欄位中的所有字母以連字號(-)取代,用以遮罩真實的車牌號碼。
本練習屬於課程
清理 PostgreSQL 資料庫中的資料
練習說明
- 使用
REGEXP_REPLACE(),將plate_id欄位中所有大寫字母(A到Z)取代為連字號(-),好讓報表能使用已遮罩的車牌號碼。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
SELECT
summons_number,
-- Replace uppercase letters in plate_id with dash
___(___, ___, ___, 'g')
FROM
parking_violation;