การปิดบังข้อมูลระบุตัวตนด้วย Regular Expressions
Regular expressions ยังสามารถใช้แทนที่รูปแบบใน string ได้ผ่านฟังก์ชัน REGEXP_REPLACE() ซึ่งมีลักษณะคล้ายกับฟังก์ชัน REPLACE() โดยมี signature ดังนี้: REGEXP_REPLACE(source, pattern, replace, flags)
patternคือรูปแบบ string ที่ต้องการจับคู่ใน stringsourcereplaceคือ string ที่จะนำมาแทนที่รูปแบบที่พบflagsคือ string เสริมที่ใช้ควบคุมการจับคู่
ตัวอย่างเช่น REGEXP_REPLACE(xyz, '\d', '_', 'g') จะแทนที่ตัวเลขทุกตัว (\d) ในคอลัมน์ xyz ด้วยขีดล่าง (_) โดย flag g ("global") ทำให้แทนที่ทุกรูปแบบที่ตรงกัน
เพื่อปกป้องความเป็นส่วนตัวของผู้ได้รับใบสั่งจอดรถในรายงานเว็บใหม่ ตัวอักษรทั้งหมดในคอลัมน์ plate_id ต้องถูกแทนที่ด้วยขีดกลาง (-) เพื่อปิดบังหมายเลขทะเบียนที่แท้จริง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL
คำแนะนำการฝึกหัด
- ใช้
REGEXP_REPLACE()เพื่อแทนที่ตัวอักษรพิมพ์ใหญ่ทั้งหมด (ตั้งแต่AถึงZ) ในคอลัมน์plate_idด้วยขีดกลาง (-) เพื่อให้สามารถนำหมายเลขทะเบียนที่ปิดบังแล้วไปใช้ในรายงานได้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
summons_number,
-- Replace uppercase letters in plate_id with dash
___(___, ___, ___, 'g')
FROM
parking_violation;