German Phone Number
Detects German mobile telephone numbers per the Bundesnetzagentur's (BNetzA) Nummernplan für Mobile Dienste: the (0)15, (0)16, and (0)17 mobile sub-ranges, in both the domestic (leading trunk "0") and international (+49, leading 0 dropped) forms. BNetzA's own published length table shows the national significant number (the digits after the leading 0, including the "1" of "15/16/17") is 10 digits for most 016x/017x allocations and 11 digits for the 015x range and the 1609/176 exceptions — every quantifier below is bounded to this documented 10-11 digit span rather than left open-ended. Geographic (Ortsnetz) landline numbers are intentionally out of scope: BNetzA states area codes run 2-5 digits and new allocations are capped at 11 significant digits (10 for the Berlin/Hamburg/Frankfurt/Munich two-digit-code exception), but does not publish a verified minimum length for the existing stock of legacy numbers, so a low-end bound would be invented rather than sourced — mirroring in-phone-number's decision to scope out India's similarly under-specified STD/landline numbers.
- Type
- regex
- Engine
- universal
- Confidence
- medium
- Confidence justification
- Medium confidence: the 01[5-7] mobile-family leading digits and the 10-11 digit length bound (drawn directly from BNetzA's published Rufnummernblock length table) narrow the format, but German mobile numbers carry no checksum and a 10-11 digit sequence with those leading digits is still a high digit-collision format. Per the phone-family convention (every tier requires positive corroborative evidence; a +CC prefix alone is insufficient gating; there is no 65 rung), both the domestic and +49 international sub-regexes are evidence-gated at every tier: 75 requires generic phone-context evidence and 85 requires country-specific phone keywords with template/noise exclusion. The literal +49 prefix improves precision when present but is not by itself sufficient gating.
- Jurisdictions
- de
- Regulations
- GDPR
- Frameworks
- ISO 27001, ISO 27701, SOC 2
- Data categories
- pii, contact-information
- Scope
- narrow
- Risk rating
- 5
- Platform compatibility
- Purview: Compatible, GCP DLP: Unsupported, Macie: Unsupported, Zscaler: Compatible, Palo Alto: Unsupported, Netskope: Unsupported
Pattern
(?<!\d)(?:\+49[\s.-]?1[5-7][\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d(?:[\s.-]?\d)?|0[\s.-]?1[5-7][\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d(?:[\s.-]?\d)?)(?!\d)
Corroborative evidence keywords
phone, mobile, call, text, contact number, German phone number, Telefonnummer, call me at, cell, telephone, tel, dial, text me, text message, [object Object], WhatsApp, voicemail, phone number, mobile number, landline
Proximity: 300 characters
Should match
Vodafone: 0152 28817386— BNetzA-reserved "drama number" (Mitteilung 148/2021), Vodafone 0152 mobile range, space-separatedRufnummer: 0172 9925904— BNetzA-reserved drama number, 0172 mobile rangeCall the office mobile 0171-3920045— BNetzA-reserved Deutsche Telekom drama number block (0171 3920000-3920099), hyphenatedInternational contact: +49 152 28817386— International +49 form of the Vodafone drama number, leading 0 dropped
Should not match
030 23125678— BNetzA-reserved Berlin landline drama number — geographic (Ortsnetz) numbers are out of scope for this mobile-only pattern0180 5123456— 0180 is a special-rate service prefix, not a 015/016/017 mobile range — third digit 8 is excluded0152 2881— Only 4 digits after the 0152 mobile prefix, far short of the required 8-990152288173869999— Valid-shaped mobile digit run embedded inside a longer reference number, rejected by digit boundaries
Known false positives
- A 10-11 digit sequence with the 01[5-7] mobile leading-digit shape can still coincidentally match invoice numbers, order numbers, or other structured identifiers of similar length and leading-digit distribution. Mitigation: Every tier — for both the domestic and +49 international sub-regexes — requires positive phone-context or country-specific evidence within 300 characters; no zero-evidence tier exists, so a bare digit run without corroborating context never fires at any confidence level.
- Geographic (Ortsnetz) landline numbers are not detected at all (a false negative, not a false positive, but noted for completeness): BNetzA documents a 2-5 digit area code and an 11-digit cap for new allocations (10 for the Berlin/Hamburg/Frankfurt/Munich exception), but publishes no verified minimum length across the existing stock, so bounding a landline regex would mean inventing a lower bound rather than sourcing it. Mitigation: A future revision could add landline coverage if a genuinely verifiable minimum-length constraint is confirmed from a primary BNetzA source, following the same verification bar applied here.
References
- Bundesnetzagentur: Rufnummern für Mobile Dienste ((0)15, (0)16, (0)17)
- Bundesnetzagentur: Länge der Rufnummernblöcke (Mobile Dienste) — 10/11-digit national-format length table
- Bundesnetzagentur Mitteilung 148/2021: Rufnummern für Medienproduktionen ("Drama Numbers") — reserved fictional test numbers