verkehrsminister
28.06.2007, 17:35
Hallo alle miteinander,
mit dem folgenden Problem schlage ich mich schon seit geraumer Zeit herum, habe auch schon diverse Lektüre durch und wende mich jetzt hilfesuchend an euch.
Ich habe einen String
wort1: etwas Text
wort2: noch etwas Text
wort3: jetzt sogar mehr-
zeiliger Text
totalandereswort: wir kommen zum Schluß
daraus soll letztendlich das hier werden (Pseudo-PHP-Array-Code)
$arr[0]['wort'] = 'wort1';
$arr[0]['value'] = 'etwas Text';
$arr[1]['wort'] = 'wort2';
$arr[1]['value'] = 'noch mehr Text';
$arr[2]['wort'] = 'wort3';
$arr[2]['value'] = 'jetzt sogar mehr-
zeiliger Text';
$arr[3]['wort'] = 'totalandereswort';
$arr[3]['value'] = 'wir kommen zum Schluß';
Ist klar, das ist noch nicht ganz das Array, das z.B. preg_match_all() (PHP) erzeugt, aber es ließe sich fix daraus bauen.
Doch ich finde leider keinen passenden Regex. Weiß jemand Rat?
Für Zeichenklassen habe ich eine probate Lösung, aber dafür sind hier nicht die Voraussetzungen gegeben. Trotzdem geb ich die nochmal dazu, vielleicht dient die ja als Lösungsansatz. Im folgenden gehe ich davon aus, das der Text nach "[.*]" keine eckigen Klammern enthalten darf und so bekomme ich die Zeichenklasse [^\[\]]. So kann ich sowohl "[.*]" als auch alles andere schön zuordnen.
Text:
[a] 11111
[bb] 22222
[ccc] 33
3333
Pattern:
/(\[.*\])(.[^\[\]]*)/
Ähm, und vielen Dank im Voraus...
mit dem folgenden Problem schlage ich mich schon seit geraumer Zeit herum, habe auch schon diverse Lektüre durch und wende mich jetzt hilfesuchend an euch.
Ich habe einen String
wort1: etwas Text
wort2: noch etwas Text
wort3: jetzt sogar mehr-
zeiliger Text
totalandereswort: wir kommen zum Schluß
daraus soll letztendlich das hier werden (Pseudo-PHP-Array-Code)
$arr[0]['wort'] = 'wort1';
$arr[0]['value'] = 'etwas Text';
$arr[1]['wort'] = 'wort2';
$arr[1]['value'] = 'noch mehr Text';
$arr[2]['wort'] = 'wort3';
$arr[2]['value'] = 'jetzt sogar mehr-
zeiliger Text';
$arr[3]['wort'] = 'totalandereswort';
$arr[3]['value'] = 'wir kommen zum Schluß';
Ist klar, das ist noch nicht ganz das Array, das z.B. preg_match_all() (PHP) erzeugt, aber es ließe sich fix daraus bauen.
Doch ich finde leider keinen passenden Regex. Weiß jemand Rat?
Für Zeichenklassen habe ich eine probate Lösung, aber dafür sind hier nicht die Voraussetzungen gegeben. Trotzdem geb ich die nochmal dazu, vielleicht dient die ja als Lösungsansatz. Im folgenden gehe ich davon aus, das der Text nach "[.*]" keine eckigen Klammern enthalten darf und so bekomme ich die Zeichenklasse [^\[\]]. So kann ich sowohl "[.*]" als auch alles andere schön zuordnen.
Text:
[a] 11111
[bb] 22222
[ccc] 33
3333
Pattern:
/(\[.*\])(.[^\[\]]*)/
Ähm, und vielen Dank im Voraus...