Built-in Pattern Reference
When you build your configuration file, you will specify the patterns used to replace sensitive data with similar but meaningless values. pgEdge Anonymizer includes a number of built-in anonymization patterns and can use a combination of pre-defined patterns and user-defined patterns when processing a file. Anonymizer includes over 180 built-in patterns covering common PII types, with extensive support for country-specific data formats across 19 countries:
- Australia
- Canada
- Finland
- France
- Germany
- India
- Ireland
- Italy
- Japan
- Mexico
- New Zealand
- Norway
- Pakistan
- Singapore
- South Korea
- Spain
- Sweden
- United Kingdom
- United States
Within a single anonymization run, the same input value always produces the same output value. This ensures that within your development/testing environment:
- Referential integrity is maintained.
- Related records stay linked.
- Reports and analytics remain meaningful.
For example, if john.smith@example.com is anonymized to michael.williams.e3b0c4@example.com, every occurrence of that email in your database will be replaced with the same anonymized value.
Pattern Selection Guide
Within your configuration file, choose patterns based on your data type.
Generic Patterns
| Data Type | Recommended Pattern |
|---|---|
| Full names | PERSON_NAME or WORLDWIDE_NAME |
| First names only | PERSON_FIRST_NAME or WORLDWIDE_FIRST_NAME |
| Last names only | PERSON_LAST_NAME or WORLDWIDE_LAST_NAME |
| Email addresses | EMAIL |
| Phone numbers (various) | WORLDWIDE_PHONE |
| Street addresses | ADDRESS |
| City names | CITY or WORLDWIDE_CITY |
| Mixed postal codes | WORLDWIDE_POSTCODE |
| Credit card numbers | CREDIT_CARD |
| Card expiry dates | CREDIT_CARD_EXPIRY |
| CVV codes | CREDIT_CARD_CVV |
| Passport numbers | PASSPORT |
| Birth dates (any age) | DOB |
| Birth dates (13+) | DOB_OVER_13 |
| Birth dates (16+) | DOB_OVER_16 |
| Birth dates (18+) | DOB_OVER_18 |
| Birth dates (21+) | DOB_OVER_21 |
| Notes/comments | LOREMIPSUM |
| IPv4 addresses | IPV4_ADDRESS |
| IPv6 addresses | IPV6_ADDRESS |
| Hostnames/FQDNs | HOSTNAME |
Country-Specific Patterns
For data that should match a specific country's format, use the country-specific patterns. The country code prefix indicates the country:
| Country | Code | Phone | Postcode | Address | Names | ID |
|---|---|---|---|---|---|---|
| Australia | AU | AU_PHONE |
AU_POSTCODE |
AU_ADDRESS |
AU_NAME |
AU_TFN |
| Canada | CA | CA_PHONE |
CA_POSTCODE |
CA_ADDRESS |
CA_NAME |
CA_SIN |
| Finland | FI | FI_PHONE |
FI_POSTCODE |
FI_ADDRESS |
FI_NAME |
FI_HETU |
| France | FR | FR_PHONE |
FR_POSTCODE |
FR_ADDRESS |
FR_NAME |
FR_NIR |
| Germany | DE | DE_PHONE |
DE_POSTCODE |
DE_ADDRESS |
DE_NAME |
DE_STEUERID |
| India | IN | IN_PHONE |
IN_POSTCODE |
IN_ADDRESS |
IN_NAME |
IN_AADHAAR, IN_PAN |
| Ireland | IE | IE_PHONE |
IE_POSTCODE |
IE_ADDRESS |
IE_NAME |
IE_PPS |
| Italy | IT | IT_PHONE |
IT_POSTCODE |
IT_ADDRESS |
IT_NAME |
IT_CF |
| Japan | JP | JP_PHONE |
JP_POSTCODE |
JP_ADDRESS |
JP_NAME |
JP_MYNUMBER |
| Mexico | MX | MX_PHONE |
MX_POSTCODE |
MX_ADDRESS |
MX_NAME |
MX_CURP |
| New Zealand | NZ | NZ_PHONE |
NZ_POSTCODE |
NZ_ADDRESS |
NZ_NAME |
NZ_IRD |
| Norway | NO | NO_PHONE |
NO_POSTCODE |
NO_ADDRESS |
NO_NAME |
NO_FNR |
| Pakistan | PK | PK_PHONE |
PK_POSTCODE |
PK_ADDRESS |
PK_NAME |
PK_CNIC |
| Singapore | SG | SG_PHONE |
SG_POSTCODE |
SG_ADDRESS |
SG_NAME |
SG_NRIC |
| South Korea | KR | KR_PHONE |
KR_POSTCODE |
KR_ADDRESS |
KR_NAME |
KR_RRN |
| Spain | ES | ES_PHONE |
ES_POSTCODE |
ES_ADDRESS |
ES_NAME |
ES_NIF |
| Sweden | SE | SE_PHONE |
SE_POSTCODE |
SE_ADDRESS |
SE_NAME |
SE_PNR |
| UK | UK | UK_PHONE |
UK_POSTCODE |
UK_ADDRESS |
UK_NAME |
UK_NI, UK_NHS |
| US | US | US_PHONE |
US_ZIP |
US_ADDRESS |
US_NAME |
US_SSN |
Example: Anonymizing a UK customer database:
columns:
- column: customers.full_name
pattern: UK_NAME
- column: customers.phone
pattern: UK_PHONE
- column: customers.address
pattern: UK_ADDRESS
- column: customers.postcode
pattern: UK_POSTCODE
- column: customers.ni_number
pattern: UK_NI
Proper Names
PERSON_NAME
Generates realistic full names (first and last name combined).
Input/Output Examples:
| Input | Output |
|---|---|
| John Smith | Jennifer Williams |
| JANE DOE | MICHAEL JOHNSON |
| alice jones | robert davis |
| Smith, John | Williams, Jennifer |
Format Preservation:
- Detects comma-separated format (Last, First)
- Preserves all-uppercase input
- Preserves all-lowercase input
PERSON_FIRST_NAME
Generates first names only.
Input/Output Examples:
| Input | Output |
|---|---|
| John | Michael |
| SARAH | JENNIFER |
| alice | robert |
Format Preservation:
- Preserves all-uppercase input
- Preserves all-lowercase input
PERSON_LAST_NAME
Generates last names only.
Input/Output Examples:
| Input | Output |
|---|---|
| Smith | Williams |
| JOHNSON | DAVIS |
| williams | anderson |
Format Preservation:
- Preserves all-uppercase input
- Preserves all-lowercase input
Birthdate and Age Range
DOB
Generates dates of birth for any age (0-100 years).
Input/Output Examples:
| Input | Output |
|---|---|
| 1985-03-15 | 1967-08-22 |
| 03/15/1985 | 08/22/1967 |
| March 15, 1985 | August 22, 1967 |
Format Detection:
- ISO format: YYYY-MM-DD
- US format: MM/DD/YYYY
- US short: MM/DD/YY
- Long format: Month DD, YYYY
DOB_OVER_13
Generates dates of birth ensuring the person is at least 13 years old.
DOB_OVER_16
Generates dates of birth ensuring the person is at least 16 years old.
DOB_OVER_18
Generates dates of birth ensuring the person is at least 18 years old. Commonly used for adult-only services.
DOB_OVER_21
Generates dates of birth ensuring the person is at least 21 years old. Commonly used for alcohol-related services in the US.
Contact Information
Generates realistic email addresses using combinations of first names, last names, and common domain names. Each generated email includes a unique hash-based suffix derived from the input to ensure uniqueness even with large datasets and unique constraints.
Input/Output Examples:
| Input | Output |
|---|---|
| john.smith@company.com | michael.williams.e3b0c4@example.com |
| jane@work.org | jennifer.davis.7d865e@example.net |
| user123@mail.co.uk | robert.jones.2c26b4@example.org |
Features:
- Unique suffix ensures no collisions with unique database constraints
- Same input always produces same output (deterministic)
- Multiple format variations (first.last, flast, firstl, first_last)
US_PHONE
Generates US-format phone numbers.
Input/Output Examples:
| Input | Output |
|---|---|
| 555-123-4567 | 555-234-5678 |
| (555) 123-4567 | (555) 234-5678 |
| 5551234567 | 5552345678 |
| 555.123.4567 | 555.234.5678 |
Format Preservation:
- Detects and preserves separator style (dashes, dots, spaces)
- Detects and preserves parentheses around area code
- Preserves digit-only format
UK_PHONE
Generates UK-format phone numbers with country code.
Input/Output Examples:
| Input | Output |
|---|---|
| +44 20 7946 0958 | +44 20 8234 5678 |
| 020 7946 0958 | 020 8234 5678 |
INTERNATIONAL_PHONE
Generates international phone numbers with country codes.
Input/Output Examples:
| Input | Output |
|---|---|
| +1 555 123 4567 | +33 1234 5678901 |
| +44 20 7946 0958 | +49 30 12345678 |
WORLDWIDE_PHONE
Generates generic phone numbers (digits only, most permissive).
Input/Output Examples:
| Input | Output |
|---|---|
| Any phone format | 5552345678 |
ADDRESS
Generates street addresses from diverse worldwide data. This pattern randomly selects a country format (US, UK, German, Japanese, etc.) and generates an address in that country's style.
Input/Output Examples:
| Input | Output |
|---|---|
| 123 Main St, City 12345 | 742 Oak Ave, Springfield 90210 |
| 456 Oak Avenue | Hauptstraße 891, 10115 Berlin |
| Simple address | 〒100-0001 東京都 1-2-3 |
Generated Format:
- Randomly selects from 19 country-specific formats
- Street number, street name, city, and postal code
- Country-appropriate address structure
For country-specific addresses, use patterns like US_ADDRESS, UK_ADDRESS,
DE_ADDRESS, etc.
WORLDWIDE_ADDRESS
Alias for ADDRESS. Generates street addresses from diverse worldwide data.
CITY
Generates city names from diverse worldwide data. Combines city names from all 19 supported countries.
Input/Output Examples:
| Input | Output |
|---|---|
| New York | Tokyo |
| CHICAGO | MÜNCHEN |
| boston | sydney |
Format Preservation:
- Preserves all-uppercase input
- Preserves all-lowercase input
For country-specific cities, use patterns like US_CITY, UK_CITY,
DE_CITY, etc.
WORLDWIDE_CITY
Alias for CITY. Generates city names from diverse worldwide data.
Postal Codes
US_ZIP
Generates US ZIP codes in 5-digit or ZIP+4 format.
Input/Output Examples:
| Input | Output |
|---|---|
| 12345 | 90210 |
| 12345-6789 | 90210-1234 |
Format Preservation:
- Detects 5-digit vs ZIP+4 format
- Preserves hyphen separator for ZIP+4
UK_POSTCODE
Generates UK postcodes in valid format.
Input/Output Examples:
| Input | Output |
|---|---|
| SW1A 1AA | EC2A 3BT |
| M1 1AE | B33 8TH |
| SW1A1AA | EC2A3BT |
Features:
- Generates valid UK postcode patterns (A9 9AA, A99 9AA, AA9 9AA, AA99 9AA)
- Preserves space separator
- Uses valid postcode letter combinations
CA_POSTCODE
Generates Canadian postcodes in valid format.
Input/Output Examples:
| Input | Output |
|---|---|
| K1A 0B1 | M5V 3L9 |
| K1A0B1 | M5V3L9 |
Features:
- Generates valid Canadian format (A9A 9A9)
- Preserves space separator
- Uses valid postal code letters (excludes D, F, I, O, Q, U in certain positions)
WORLDWIDE_POSTCODE
Generates postcodes in various international formats. Auto-detects the input format and generates matching output.
Input/Output Examples:
| Input | Output |
|---|---|
| 12345 | 90210 (US format) |
| SW1A 1AA | EC2A 3BT (UK format) |
| K1A 0B1 | M5V 3L9 (Canadian format) |
Features:
- Auto-detects US, UK, or Canadian format from input
- Falls back to random format selection for ambiguous input
- Useful when postal code format varies within a column
Financial Information
CREDIT_CARD
Generates valid credit card numbers that pass Luhn checksum validation.
Input/Output Examples:
| Input | Output |
|---|---|
| 4532-1234-5678-9012 | 4532-8765-4321-0987 |
| 4532123456789012 | 4532876543210987 |
| 4532 1234 5678 9012 | 4532 8765 4321 0987 |
Features:
- Generates valid Luhn checksum
- Preserves card type prefix (Visa starts with 4, etc.)
- Preserves separator style (dashes, spaces, none)
CREDIT_CARD_EXPIRY
Generates credit card expiration dates (always in the future).
Input/Output Examples:
| Input | Output |
|---|---|
| 12/25 | 08/27 |
| 12/2025 | 08/2027 |
CREDIT_CARD_CVV
Generates 3 or 4 digit CVV codes.
Input/Output Examples:
| Input | Output |
|---|---|
| 123 | 456 |
| 1234 | 7890 |
Format Preservation:
- 3-digit input produces 3-digit output
- 4-digit input produces 4-digit output (Amex style)
Government Identifiers
US_SSN
Generates US Social Security Numbers in valid format.
Input/Output Examples:
| Input | Output |
|---|---|
| 123-45-6789 | 234-56-7890 |
| 123456789 | 234567890 |
Features:
- Avoids invalid SSN ranges (000, 666, 900-999 area numbers)
- Preserves separator style
UK_NI
Generates UK National Insurance numbers in valid format.
Input/Output Examples:
| Input | Output |
|---|---|
| AB123456C | CD789012E |
| AB 12 34 56 C | EF 78 90 12 G |
Format:
- Two prefix letters (excluding D, F, I, Q, U, V)
- Six digits
- One suffix letter (A, B, C, or D)
UK_NHS
Generates UK NHS numbers with valid check digit.
Input/Output Examples:
| Input | Output |
|---|---|
| 485 777 3456 | 234 567 8901 |
| 4857773456 | 2345678901 |
Features:
- 10 digits total
- Valid modulus 11 check digit
- Preserves space formatting
PASSPORT
Generates passport-style document numbers.
Input/Output Examples:
| Input | Output |
|---|---|
| A12345678 | B98765432 |
| 123456789 | A23456789 |
Format:
- 9 alphanumeric characters
- Mix of letters and numbers
Text Content
LOREMIPSUM
Generates lorem ipsum placeholder text matching the approximate length of the original content.
Input/Output Examples:
| Input | Output |
|---|---|
| Short text | Lorem ipsum |
| A longer piece of text | Lorem ipsum dolor sit amet |
Features:
- Matches approximate word count of input
- Uses standard lorem ipsum vocabulary
- Suitable for notes, comments, and free-text fields
Network Identifiers
IPV4_ADDRESS
Generates IPv4 addresses.
Input/Output Examples:
| Input | Output |
|---|---|
| 192.168.1.100 | 10.45.23.187 |
| 10.0.0.1 | 172.16.55.12 |
Features:
- Generates valid IPv4 format (x.x.x.x)
- Mixes private and public-looking ranges
- Avoids reserved ranges (0.x.x.x, 127.x.x.x, multicast)
IPV6_ADDRESS
Generates IPv6 addresses.
Input/Output Examples:
| Input | Output |
|---|---|
| 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | 4f2c:8a91:3d7e:1b4a:9c2f:5d8e:7a3b:2c1d |
| 2001:db8::1 | 2001:db8:a1b2:c3d4::e5f6 |
Features:
- Supports full and compressed (::) formats
- Preserves uppercase/lowercase preference
- Generates valid hex groups
HOSTNAME
Generates hostnames and fully qualified domain names (FQDNs).
Input/Output Examples:
| Input | Output |
|---|---|
| webserver | proxy |
| server01.example.com | node42.internal |
| db | api |
Features:
- Detects FQDN vs simple hostname
- Preserves numeric suffixes (e.g., web01 → node42)
- Uses realistic server naming conventions
Country-Specific Patterns
pgEdge Anonymizer provides extensive country-specific patterns for names, phone numbers, addresses, postal codes, and ID numbers. This allows you to generate data that matches the format and style expected for a specific country.
Country-Specific Phone Numbers
| Pattern | Description | Example Output |
|---|---|---|
AU_PHONE |
Australian | 0412 345 678 |
CA_PHONE |
Canadian | (555) 555-0123 |
DE_PHONE |
German | +49 30 12345678 |
ES_PHONE |
Spanish | +34 612 345 678 |
FI_PHONE |
Finnish | +358 40 123 4567 |
FR_PHONE |
French | +33 1 23 45 67 89 |
IE_PHONE |
Irish | +353 87 123 4567 |
IN_PHONE |
Indian | +91 98765 43210 |
IT_PHONE |
Italian | +39 333 123 4567 |
JP_PHONE |
Japanese | +81 3-1234-5678 |
KR_PHONE |
South Korean | +82 10-1234-5678 |
MX_PHONE |
Mexican | +52 55 1234 5678 |
NO_PHONE |
Norwegian | +47 912 34 567 |
NZ_PHONE |
New Zealand | +64 21 123 4567 |
PK_PHONE |
Pakistani | +92 300 1234567 |
SE_PHONE |
Swedish | +46 70 123 45 67 |
SG_PHONE |
Singaporean | +65 9123 4567 |
Country-Specific Postcodes
| Pattern | Description | Format |
|---|---|---|
AU_POSTCODE |
Australian | 4 digits (2000-7999) |
DE_POSTCODE |
German PLZ | 5 digits |
ES_POSTCODE |
Spanish | 5 digits |
FI_POSTCODE |
Finnish | 5 digits |
FR_POSTCODE |
French | 5 digits (department + commune) |
IE_POSTCODE |
Irish Eircode | A9A A9A9 format |
IN_POSTCODE |
Indian PIN | 6 digits |
IT_POSTCODE |
Italian CAP | 5 digits |
JP_POSTCODE |
Japanese | XXX-XXXX format |
KR_POSTCODE |
South Korean | 5 digits |
MX_POSTCODE |
Mexican | 5 digits |
NO_POSTCODE |
Norwegian | 4 digits |
NZ_POSTCODE |
New Zealand | 4 digits |
PK_POSTCODE |
Pakistani | 5 digits |
SE_POSTCODE |
Swedish | XXX XX format |
SG_POSTCODE |
Singaporean | 6 digits |
Country-Specific Addresses
| Pattern | Description | Example Output |
|---|---|---|
AU_ADDRESS |
Australian | 123 Main Street, Sydney 2000 |
CA_ADDRESS |
Canadian | 123 Main St, Toronto M5V 3K9 |
DE_ADDRESS |
German | Hauptstraße 123, 10115 Berlin |
ES_ADDRESS |
Spanish | Calle Mayor 123, 28001 Madrid |
FI_ADDRESS |
Finnish | Mannerheimintie 123, 00100 Helsinki |
FR_ADDRESS |
French | 123 Rue de Paris, 75001 Paris |
IE_ADDRESS |
Irish | 123 Main Street, Dublin, D02 X285 |
IN_ADDRESS |
Indian | 123 MG Road, Mumbai - 400001 |
IT_ADDRESS |
Italian | Via Roma 123, 00100 Roma |
JP_ADDRESS |
Japanese | 〒100-0001 Tokyo 1-2-3 |
KR_ADDRESS |
South Korean | Seoul Gangnam-ro 123 (06000) |
MX_ADDRESS |
Mexican | Calle Principal #123, 01000 México |
NO_ADDRESS |
Norwegian | Storgata 123, 0001 Oslo |
NZ_ADDRESS |
New Zealand | 123 Queen Street, Auckland 1010 |
PK_ADDRESS |
Pakistani | 123 Main Road, Islamabad - 44000 |
SE_ADDRESS |
Swedish | Kungsgatan 123, 100 00 Stockholm |
SG_ADDRESS |
Singaporean | Blk 123 Orchard Road, Singapore 018956 |
UK_ADDRESS |
UK | 123 High Street, London, SW1A 1AA |
US_ADDRESS |
US | 123 Main St, New York 10001 |
Worldwide Name Generators
For data that may come from any country, use the worldwide generators:
| Pattern | Description |
|---|---|
WORLDWIDE_CITY |
City names from any supported country |
WORLDWIDE_FIRST_NAME |
First names from any supported country |
WORLDWIDE_LAST_NAME |
Last names from any supported country |
WORLDWIDE_NAME |
Full names from any supported country |
Country-Specific Names
For each supported country, generators are available for first names, last
names, full names, and cities. The pattern names follow the format
{COUNTRY_CODE}_{TYPE}:
| Pattern Type | Countries Available |
|---|---|
{CC}_CITY |
AU, CA, DE, ES, FI, FR, IE, IN, IT, JP, KR, MX, NO, NZ, PK, SE, SG, UK, US |
{CC}_FIRST_NAME |
AU, CA, DE, ES, FI, FR, IE, IN, IT, JP, KR, MX, NO, NZ, PK, SE, SG, UK, US |
{CC}_LAST_NAME |
AU, CA, DE, ES, FI, FR, IE, IN, IT, JP, KR, MX, NO, NZ, PK, SE, SG, UK, US |
{CC}_NAME |
AU, CA, DE, ES, FI, FR, IE, IN, IT, JP, KR, MX, NO, NZ, PK, SE, SG, UK, US |
Examples:
US_FIRST_NAME- American first names (John, Mary, Michael)JP_LAST_NAME- Japanese surnames (Tanaka, Suzuki, Sato)DE_NAME- German full names (Hans Mueller, Anna Schmidt)UK_CITY- UK cities with counties (London, Greater London)
Country-Specific ID Numbers
| Pattern | Description | Format |
|---|---|---|
AU_TFN |
Australian Tax File Number | 9 digits |
CA_SIN |
Canadian Social Insurance Number | XXX-XXX-XXX |
DE_STEUERID |
German tax ID | 11 digits |
ES_NIF |
Spanish NIF/DNI | 8 digits + letter |
FI_HETU |
Finnish personal identity code | DDMMYY-XXXC |
FR_NIR |
French social security number | 15 digits |
IE_PPS |
Irish PPS number | 7 digits + 1-2 letters |
IN_AADHAAR |
Indian Aadhaar | 12 digits |
IN_PAN |
Indian PAN | AAAAA9999A |
IT_CF |
Italian Codice Fiscale | 16 alphanumeric |
JP_MYNUMBER |
Japanese My Number | 12 digits |
KR_RRN |
South Korean Resident Registration | YYMMDD-XXXXXXX |
MX_CURP |
Mexican CURP | 18 alphanumeric |
NO_FNR |
Norwegian Fødselsnummer | 11 digits |
NZ_IRD |
New Zealand IRD number | 8-9 digits |
PK_CNIC |
Pakistani CNIC | XXXXX-XXXXXXX-X |
SE_PNR |
Swedish personnummer | YYMMDD-XXXX |
SG_NRIC |
Singaporean NRIC | Letter + 7 digits + letter |
US_SSN |
US Social Security Number | XXX-XX-XXXX |