Ich würde gerne aus einem String alle Befehle auslesen, die folgerndermaßen aufgbaut sind:
{var[:wert[:wert[etc...]]]}
also ein Ausdruck beginnend mit { dann ein wort und dann eine unbestimmte Anzahl von Werten. Das Ende ist wieder mit } gekennzeichnet. (Beispiel siehe $string).
Der Code soll das dann auslesen und in einem Array speichern, das folgerndermaßen aufgabaut sein sollte (bzw. so ähnlich):
Das Script:
momentan bekomme ich aber nur diese Ausgabe:
Was muss ich ändern?
Danke
nougad
{var[:wert[:wert[etc...]]]}
also ein Ausdruck beginnend mit { dann ein wort und dann eine unbestimmte Anzahl von Werten. Das Ende ist wieder mit } gekennzeichnet. (Beispiel siehe $string).
Der Code soll das dann auslesen und in einem Array speichern, das folgerndermaßen aufgabaut sein sollte (bzw. so ähnlich):
Code:
array(3) {
[0]=>
array(3) {
[0]=>
string(29) "{var:wert1:wert2:wert3:wert4}"
[1]=>
string(3) "var"
[2]=>
string(5) "wert1"
[3]=>
string(6) "wert2"
[4]=>
string(6) "wert3"
[5]=>
string(6) "wert4"
}
[1]=>
array(3) {
[0]=>
string(20) "{var2:wert21:wert22}"
[1]=>
string(4) "var2"
[2]=>
string(6) "wert21"
[2]=>
string(6) "wert22"
}
[2]=>
array(2) {
[0]=>
string(5) "{var}"
[1]=>
string(3) "var"
}
}
PHP-Code:
<?php
$string = "asdf{var:wert1:wert2:wert3:wert4}asdfasdf{var2:wert21:wert22}sdfsdf{var}";
$suchmuster = '/{(\w*)(:(\w*))*}/';
preg_match_all($suchmuster,$string,$fundstellen,PREG_SET_ORDER);
var_dump($fundstellen);
?>
Code:
array(3) {
[0]=>
array(3) {
[0]=>
string(29) "{var:wert1:wert2:wert3:wert4}"
[1]=>
string(3) "var"
[2]=>
string(6) ":wert4"
}
[1]=>
array(3) {
[0]=>
string(20) "{var2:wert21:wert22}"
[1]=>
string(4) "var2"
[2]=>
string(7) ":wert22"
}
[2]=>
array(2) {
[0]=>
string(5) "{var}"
[1]=>
string(3) "var"
}
}
Danke
nougad
Kommentar