Vind mobiele nummers in een lap tekst onafhankelijk van het format van het mobiele nummer

Wil je alle telefoonnummers uit een lap tekst halen onafhankelijk van het format van het nummer? Of het nou +31 6 12345678 of 0031612345678 of wat anders is? Regular Expressions (regex) in Python to the rescue! Volg onderstaande link om de code in de screenshot te kunnen kopieren.

import re

# VERBOSE mode om bij een regex per regel comments toe te kunnen voegen. Handig voor documentatie bij grotere regex. 
re.compile(r'''                 # Drie quotes om ervoor te zorgen dat python de new lines in dit block code negeert. 
(?:(?:\d\d\d\d)|                # Landcode (non capturing group ?:), in het geval van NL 0031.
(?:\+31))                       # Landcode (non capturing group ?:) met een escaped +. In het geval van NL +31.
(?:-?|\s)                       # Een dash OF spatie tussen de landcode en het nummer die 0 of 1 keer voor mag komen zodat telefoonnummers zonder dash ook meegenomen worden. 
\d\s?\d\d\d\s?\d\s?\d\d\d\d     # Het nummer. Er mag een spatie zitten na getal 1, 4 en 5 van de 9, maar dit hoeft niet (dus zowel 612345678 als 61234 5678 als 6 1234 5678 worden gevonden).
''', re.VERBOSE).findall('Kijk eens hier, een telefoonnumer: 0031-612345678. Hier is er nog een: +31-612345678. 0031612345678 en 0031 612345678, maar ook 0031 61234 5678 en 0031 6 1234 5678')

Leave Comment

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *