ik heb een regulier expressie die matched op correct ingevoerde Nederlandse mobiele nummers:
nu wil ik deze in 1 expressie converteren naar het formaat "31612345678". nou heb ik ergens gelezen dat (?= ... ) wel matched op "..." maar deze niet opneemt in de matchende string. als ik bijvoorbeeld doe:
dan worden de laatste 8 cijfers niet opgenomen in de match. maar ik wil juist het omgekeerde, namelijk de laatste 8 unieke nummers van een NL mobiel nummer. Zo kan ik er daarna gewoon "316" voorplakken. dus zet ik die (? ... ) om de rest heen:
maar dat levert resultaten op die ik niet begrijp. natuurlijk kan het gemakkelijk in 2 of 3 regels, maar het moet toch gewoon mogelijk zijn in 1
?
output:
code:
1
| /^(\+?31|0)6-?\d{8}/ |
nu wil ik deze in 1 expressie converteren naar het formaat "31612345678". nou heb ik ergens gelezen dat (?= ... ) wel matched op "..." maar deze niet opneemt in de matchende string. als ik bijvoorbeeld doe:
code:
1
| /^(\+?31|0)6-?(?=\d{8})/ |
dan worden de laatste 8 cijfers niet opgenomen in de match. maar ik wil juist het omgekeerde, namelijk de laatste 8 unieke nummers van een NL mobiel nummer. Zo kan ik er daarna gewoon "316" voorplakken. dus zet ik die (? ... ) om de rest heen:
code:
1
| /^(?=(\+?31|0)6-?)\d{8}/ |
maar dat levert resultaten op die ik niet begrijp. natuurlijk kan het gemakkelijk in 2 of 3 regels, maar het moet toch gewoon mogelijk zijn in 1
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <pre> <? $a = array( "00612345678", "31612345678", "06-12345678", "44612345678", "+31612345678", "+0612345678", "612345678", "0612345678"); $r = "/^(\+?31|0)6-?\d{8}/"; foreach($a as $s) { $m = preg_match($r, $s, $n); if(count($n) > 0) echo $s.":\t".$n[0]."\n"; else echo $s.":\tno match\n"; } ?> </pre> |
output:
code:
1
2
3
4
5
6
7
8
| 00612345678: no match 31612345678: 31612345678 06-12345678: 06-12345678 44612345678: no match +31612345678: +31612345678 +0612345678: no match 612345678: no match 0612345678: 0612345678 |
[ Voor 17% gewijzigd door Genoil op 15-09-2004 21:56 ]