Ik heb al veel gespeeld met regular expressions, maar weet simpelweg niet hoe ik het volgende moet doen. Hoe krijg ik enkel en alleen de gevulde groups terug bij matching?
Kijk, ik heb de volgende regular expression voor het splitten van netnummers / abonneenummers:
Nu wil ik simpelweg dat groups (0) en groups (1) gevuld zijn met (0111) en (1234567)
Maar, groups(1) en groups(2) zijn in plaats van 0 en 1 gevuld.. Dus zal ik alle matches moeten doorlopen om te kijken of er groups gevuld zijn, en dat wil ik niet... Is het mogelijk om gewoonweg de enige gevulde matches terug te krijgen, en dus niet te hoeven loopen?
Kijk, ik heb de volgende regular expression voor het splitten van netnummers / abonneenummers:
code:
1
2
3
4
5
6
| Dim strTelefoon As String = "01111234567"
Dim regNetnummers As New Regex("(010)(\d*)|(0111)(\d*)|(0113)(\d*)|(0114)(\d*)|(0115)(\d*)|(0117)(\d*)|(0118)(\d*)|(013)(\d*)|(015)(\d*)|(0161)(\d*)|(0162)(\d*)|(0164)(\d*)|(0165)(\d*)|(0166)(\d*)|(0167)(\d*)|(0168)(\d*)|(0172)(\d*)|(0174)(\d*)|(0180)(\d*)|(0181)(\d*)|(0182)(\d*)|(0183)(\d*)|(0184)(\d*)|(0186)(\d*)|(0187)(\d*)|(020)(\d*)|(0222)(\d*)|(0223)(\d*)|(0224)(\d*)|(0226)(\d*)|(0227)(\d*)|(0228)(\d*)|(0229)(\d*)|(023)(\d*)|(024)(\d*)|(0251)(\d*)|(0252)(\d*)|(0255)(\d*)|(026)(\d*)|(0294)(\d*)|(0297)(\d*)|(0299)(\d*)|(030)(\d*)|(0313)(\d*)|(0314)(\d*)|(0315)(\d*)|(0316)(\d*)|(0317)(\d*)|(0318)(\d*)|(0320)(\d*)|(0321)(\d*)|(033)(\d*)|(0341)(\d*)|(0342)(\d*)|(0343)(\d*)|(0344)(\d*)|(0345)(\d*)|(0346)(\d*)|(0347)(\d*)|(0348)(\d*)|(035)(\d*)|(036)(\d*)|(038)(\d*)|(040)(\d*)|(0411)(\d*)|(0412)(\d*)|(0413)(\d*)|(0416)(\d*)|(0418)(\d*)|(043)(\d*)|(045)(\d*)|(046)(\d*)|(0475)(\d*)|(0478)(\d*)|(0481)(\d*)|(0485)(\d*)|(0486)(\d*)|(0487)(\d*)|(0488)(\d*)|(0492)(\d*)|(0493)(\d*)|(0495)(\d*)|(0497)(\d*)|(0499)(\d*)|(050)(\d*)|(0511)(\d*)|(0512)(\d*)|(0513)(\d*)|(0514)(\d*)|(0515)(\d*)|(0516)(\d*)|(0517)(\d*)|(0518)(\d*)|(0519)(\d*)|(0521)(\d*)|(0522)(\d*)|(0523)(\d*)|(0524)(\d*)|(0525)(\d*)|(0527)(\d*)|(0528)(\d*)|(0529)(\d*)|(053)(\d*)|(0541)(\d*)|(0543)(\d*)|(0544)(\d*)|(0545)(\d*)|(0546)(\d*)|(0547)(\d*)|(0548)(\d*)|(055)(\d*)|(0561)(\d*)|(0562)(\d*)|(0566)(\d*)|(0570)(\d*)|(0571)(\d*)|(0572)(\d*)|(0573)(\d*)|(0575)(\d*)|(0577)(\d*)|(0578)(\d*)|(058)(\d*)|(0591)(\d*)|(0592)(\d*)|(0593)(\d*)|(0594)(\d*)|(0595)(\d*)|(0596)(\d*)|(0597)(\d*)|(0598)(\d*)|(0599)(\d*)|(070)(\d*)|(071)(\d*)|(072)(\d*)|(073)(\d*)|(074)(\d*)|(075)(\d*)|(076)(\d*)|(077)(\d*)|(078)(\d*)|(079)(\d*)|(06)(\d*)|(0676)(\d*)|(0800)(\d*)|(084)(\d*)|(087)(\d*)|(085)(\d*)|(088)(\d*)|(091)(\d*)")
strTelefoon = regNetnummers.Match(strTelefoon ).Groups(0).ToString
strTelefoon = regNetnummers.Match(strTelefoon ).Groups(1).ToString |
Nu wil ik simpelweg dat groups (0) en groups (1) gevuld zijn met (0111) en (1234567)
Maar, groups(1) en groups(2) zijn in plaats van 0 en 1 gevuld.. Dus zal ik alle matches moeten doorlopen om te kijken of er groups gevuld zijn, en dat wil ik niet... Is het mogelijk om gewoonweg de enige gevulde matches terug te krijgen, en dus niet te hoeven loopen?