Maskowanie danych identyfikacyjnych za pomocą wyrażeń regularnych
Wyrażeń regularnych można też używać do zastępowania wzorców w ciągach znaków – służy do tego funkcja REGEXP_REPLACE(). Działa podobnie do funkcji REPLACE(). Jej sygnatura to REGEXP_REPLACE(source, pattern, replace, flags).
patternto wzorzec tekstowy, który ma zostać dopasowany w ciągusource.replaceto ciąg zastępczy, który pojawi się w miejsce dopasowanego wzorca.flagsto opcjonalny ciąg znaków kontrolujący sposób dopasowania.
Na przykład REGEXP_REPLACE(xyz, '\d', '_', 'g') zastąpi każdy znak cyfrowy (\d) w kolumnie xyz podkreśleniem (_). Flaga g ("global") sprawia, że zastąpione zostaną wszystkie dopasowania.
Aby chronić prywatność osób, które otrzymały mandaty parkingowe, w nowym raporcie internetowym wszystkie litery w kolumnie plate_id muszą zostać zastąpione myślnikiem (-), co zamaskuje prawdziwy numer tablicy rejestracyjnej.
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach PostgreSQL
Instrukcje do ćwiczenia
- Użyj funkcji
REGEXP_REPLACE(), aby zastąpić wszystkie wielkie litery (odAdoZ) w kolumnieplate_idmyślnikiem (-), tak żeby w raporcie można było używać zamaskowanych numerów tablic rejestracyjnych.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
SELECT
summons_number,
-- Replace uppercase letters in plate_id with dash
___(___, ___, ___, 'g')
FROM
parking_violation;