Ik ben bezig met een parser in php met behulp van reguliere expressies.
Deze werkt naar behoren, maar ik zit nog met een probleem.
Dit is een string die 'geparsed' moet worden:
met behulp van volgende code zetten wij dit om naar een array:
nu wil ik dit zodanig generiek hebben dat ik bv identifiers met waarden kan toevoegen, maar ook kan weglaten bv:
Op welke manier kan ik de reguliere expressie veranderen zodat bovenstaande mogelijk is.
Deze werkt naar behoren, maar ik zit nog met een probleem.
Dit is een string die 'geparsed' moet worden:
code:
1
| <dtbinfo>veld1=waarde1:veld2=waarde2:veld3=waarde3</dtbinfo> |
met behulp van volgende code zetten wij dit om naar een array:
code:
1
2
3
4
5
6
7
8
| $regexp = "/\<dtbinfo\>(.*)\=(.*)\:(.*)\=(.*)\:(.*)\=(.*)\<\/dtbinfo\>/i"; preg_match_all ($regexp, $file, $matches); $array = Array(); for($a=1;$a<count($matches);$a++) { $array[trim($matches[$a][0])] = trim($matches[$a+1][0]); $a++; } |
nu wil ik dit zodanig generiek hebben dat ik bv identifiers met waarden kan toevoegen, maar ook kan weglaten bv:
code:
1
2
| <dtbinfo>veld1=waarde1:veld2=waarde2:veld3=waarde3:veld4=waarde4</dtbinfo> <dtbinfo>veld1=waarde1</dtbinfo> |
Op welke manier kan ik de reguliere expressie veranderen zodat bovenstaande mogelijk is.
[AMD 64 X2 3800] [Asus a8n-e] [2048mb Kingston] [nvidia 7300GS] [2*Seagate160GB s-ata] [WD 120GB 8MB] [Plextor px-708a] [nec 4550]