European personal data regexp patterns

I've spent some time browsing through publicly available sources to find out what are various identification numbers across Europe, especially those that can be treated as "personal data". The numbers listed below include national identification, tax, health, social security and bank codes that I was able to identify.

I've been also trying to build a regular expression pattern for each number. This should work well for detection in Intrustion Prevention Systems and Data Leakage Prevention systems. I'd appreciate any corrections and updates to this list.

Region Name Description Regex Example
Austria ZMR-Zahl National identification number -
Zentrales Melderegister (Central Register of Residents - CRR)
[0-9]{12} 000247681888
Austria ASVG Social insurance number [0-9]{10} 1234030869
Austria ssPIN New national identification
number
[A-Za-z0-9+/]{22}[A-Za-z0-9+/=][A-Za-z0-9+/=] MDEyMzQ1Njc4OWFiY2RlZg==
Belgium BE.ID Identification number of the
National Register. Also used on SIS (social security) card
[0-9]{2}\.?[0-9]{2}\.?[0-9]{2}-[0-9]{3}\.?[0-9]{2} 70.01.16-287.31
Bulgaria EGN Uniform Civil Number (Bulgarian:
Единен
граждански
номер
[0-9]{2}[0,1,2,4][0-9][0-9]{2}[0-9]{4} 7608010133
Czech,
Slovakia
Birth Number (Rodné číslo) [0-9]{2}[0,1,5][0-9][0-9]{2}/?[0-9]{4} 685229/4449
Czech,
Slovakia
ČOP Citizen's Identification Card
Number (Číslo občianskeho preukazu)
[A-Z]{2}[0-9]{6}
Denmark CPR CPR-nummer (personnummer) [0-9]{2}[0,1][0-9][0-9]{2}-[0-9]{4} 020955-2017
Estonia IK Isikukood (personal code) [1-6][0-9]{2}[1,2][0-9][0-9]{2}[0-9]{4} 47111119876
Europe IBAN ISO 13616 with ISO 3166 country
code prefix in compact format
[A-Z]{2}?[ ]?[0-9]{2}[
]?[0-9]{4}[ ]?[0-9]{4}[ ]?[0-9]{4}[ ]?[0-9]{4}[ ]?[0-9]{4}
PL 10 1140 2017 0000 4202 0971 5311
Finland HETU Personal identity code
(henkilötunnus)
[0-9]{2}\.?[0,1][0-9]\.?[0-9]{2}[-+A][0-9]{3}[A-Z] 101052-719E
France NIR Social security number (INSEE) [1,2][ ]?[0-9]{2}[
]?[0,1,2,3,5][0-9][ ]?[0-9A-Z]{5}[ ]?[0-9]{3}[ ]?[0-9]{2}
1 51 02 46102 043 25
Germany PK Personenkennziffer (Bundeswehr) [0-9]{2}[0,1][0-9][0-9]{2}-[A-Z]-[0-9]{5} 261083-C-20917
Germany Steuer-ID Steuer-Identifikationsnummer [0-9]{3}/?[0-9]{4}/?[0-9]{4} 316/5756/0463
Germany VSNR, RVNR Versicherungsnummer,
Rentenversicherungsnummer
[0-9]{2}[0-9]{2}[0,1][0-9][0-9]{2}[A-Z][0-9]{2}[0-9] 65170839J003
Greece Tautotita Tautotita [A-Z][ -]?[0-9]{6} P 000007
Hungary TAJ Social insurance number (TAJ
szám)
[0-9]{3}[ ]?[0-9]{3}[ ][0-9]{3} 123 456 789
Hungary Szam Personal identfication number
(Személyi szám)
[1-8][ ]?[0-9]{2}[0,1][0-9][0-9]{2}[ ]?[0-9]{4} 1 651105 6666
Ireland PPS Personal Public Service Number [0-9]{7}[A-Z]W? 1234567A 1234567FW
Italy CF Codice fiscale [A-Z]{6}[0-9]{2}[A-E,H,L,M,P,R-T][0-9]{2}[A-Z0-9]{5} PLDTLL47S04L424T
Latvia PK Personal no (Personas kodas) [0-9]{2}[0,1][0-9][0-9]-[0-9]{5} 161171-22345
Lithuania AK Personal code (Asmens kodas) [3-6][0-9]{2}[0,1][0-9][0-9]{2}[0-9]{4} 45911231023
Netherlands BSN Burgerservicenummer, sofinummer
(Citizen's Service Number).
[0-9]{9} 987654321
Norway FN Fødselsnummer [0-9]{2}[0,1][0-9][0-9]{2}[ ]?[0-9]{5} 010168 46647
Poland PESEL National identification number [0-9]{4}[0-3]{1}[0-9}{1}[0-9]{5} 44051401458
Romania CNF Nr personal [1-8][0-9]{2}[0,1][0-9][0-9]{2}[0-9]{6} 2121212121218
Spain DNI Documento Nacional de Identidad [0-9,X,M,L,K,Y][0-9]{7}[A-Z] 99999999-R
Sweden Personnr Personal id number [0-9]{2}[0-1][0-9][0-9]{2}[-+][0-9]{4} 610321-3499
Switzerland AVS Old AVS format with personal
data encoded
[0-9]{3}\.?[0-9]{2}\.?[0-9]{3}\.?[0-9]{3} 324.65.242.000
Switzerland AVS 2008 New AVS format (16 digits with
constant prefix 756, which is ISO 3166-1 country code)
756\.?[0-9]{4}\.?[0-9]{4}\.?[0-9]{2} 756.5152.7017.84
UK NI National identification number [A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z]{1}[0-9]{6}[A-DFM]? JG103759A
UK NINO National insurance number ^([ACEHJLMOPRSW-Yacehjlmoprsw-y][A-CEGHJ-NPRSTW-Za-ceghj-nprstw-z]|[Bb][A-CEHJ-NPRSTW-Za-cehj-nprstw-z]|[Gg][ACEGHJ-NPRSTW-Zaceghj-nprstw-z]|[Kk][A-CEGHJ-MPRSTW-Za-ceghj-mprstw-z]|[Nn][A-CEGHJLMNPRSW-Za-ceghjlmnprsw-z]|[Tt][A-CEGHJ-MPRSTW-Za-ceghj-mprstw-z]|[Zz][A-CEGHJ-NPRSTW-Ya-ceghj-nprstw-y])[0-9]{6}[A-Da-d ]?$ JG 12 13 16 A, AB123456C
UK NHS UK NHS Number [0-9]{3}[ -]?[0-9]{3}[
-]?[0-9]{4}
401 023 2137

Comments

Comment viewing options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Select your preferred way to display the comments and click "Save settings" to activate your changes.

Lithuanian first number now can be 3, 4, 5 or 6:
[3-6][0-9]{2}[0,1][0-9][0-9]{2}[0-9]{4}