Ik heb de volgende reguliere expressie en wil telefoonnummers matchen. Lukt prima, maar ik vind het niet zo fraai zoals het nu gaat.
in woorden: match (3 cijfers & onbekend aantal niet-cijfers & 7 cijfers) of (4 cijfers & onbekend aantal niet-cijfers & 6 cijfers)
Maar door de groepering ()()|()() is het resultaat als volgt:
Nou kan ik het resultaat weer filteren op 'None' values, maar liever zou ik uit de expressie maar 2 elementen willen hebben. Kan dat?
Python:
1
| >>> phonePattern = re.compile('^(\d{3})\D*(\d{7})|(\d{4})\D*(\d{6})$') |
in woorden: match (3 cijfers & onbekend aantal niet-cijfers & 7 cijfers) of (4 cijfers & onbekend aantal niet-cijfers & 6 cijfers)
Maar door de groepering ()()|()() is het resultaat als volgt:
Python:
1
2
3
4
| >>> phonePattern.search('0510-123456').groups() (None, None, '0510', '134567') >>> phonePattern.search('050-1234567').groups() ('050', '1234567', None, None) |
Nou kan ik het resultaat weer filteren op 'None' values, maar liever zou ik uit de expressie maar 2 elementen willen hebben. Kan dat?