diff --git a/presidio-analyzer/presidio_analyzer/predefined_recognizers/country_specific/uk/uk_nino_recognizer.py b/presidio-analyzer/presidio_analyzer/predefined_recognizers/country_specific/uk/uk_nino_recognizer.py index 98ad202215..9ced6a505f 100644 --- a/presidio-analyzer/presidio_analyzer/predefined_recognizers/country_specific/uk/uk_nino_recognizer.py +++ b/presidio-analyzer/presidio_analyzer/predefined_recognizers/country_specific/uk/uk_nino_recognizer.py @@ -18,7 +18,7 @@ class UkNinoRecognizer(PatternRecognizer): PATTERNS = [ Pattern( "NINO (medium)", - r"\b(?!bg|gb|nk|kn|nt|tn|zz|BG|GB|NK|KN|NT|TN|ZZ) ?([a-ceghj-pr-tw-zA-CEGHJ-PR-TW-Z]{1}[a-ceghj-npr-tw-zA-CEGHJ-NPR-TW-Z]{1}) ?([0-9]{2}) ?([0-9]{2}) ?([0-9]{2}) ?([a-dA-D{1}])\b", # noqa: E501 + r"\b(?!bg|gb|nk|kn|nt|tn|zz|BG|GB|NK|KN|NT|TN|ZZ) ?([a-ceghj-pr-tw-zA-CEGHJ-PR-TW-Z]{1}[a-ceghj-npr-tw-zA-CEGHJ-NPR-TW-Z]{1}) ?([0-9]{2}) ?([0-9]{2}) ?([0-9]{2}) ?([a-dA-D]{1})\b", # noqa: E501 0.5, ), ] diff --git a/presidio-analyzer/tests/test_uk_nino_recognizer.py b/presidio-analyzer/tests/test_uk_nino_recognizer.py index 8499fb808c..0b2eac7d31 100644 --- a/presidio-analyzer/tests/test_uk_nino_recognizer.py +++ b/presidio-analyzer/tests/test_uk_nino_recognizer.py @@ -26,6 +26,9 @@ def entities(): ("Here is my National Insurance Number YZ 61 48 68 B", 1, ((36, 50),), ((0.5, 0.5),), ), # Invalid National Insurance Numbers ("AA 12 34 56 H", 0, (), (), ), + # The suffix must be a letter A-D; a numeric suffix is never valid. + ("AB 12 34 56 1", 0, (), (), ), + ("ab1234561", 0, (), (), ), ("FQ 00 00 00 C", 0, (), (), ), ("BG123612A", 0, (), (), ), ("nino: nt 99 88 77 a", 0, (), (), ),