Problem mit RegEx

Philipp9494

Erfahrenes Mitglied
Hallo

Heute habe ich begonnen, für meinen Wordpress-Blog ein Plugin zu coden.
Nun leider klappts nicht immer so wie ich will

Ich will mit Regex einen String splitten.
Er sieht etwa so aus

$name!$type==$value!

in den Vars sollen sie dann gespeichert werden. Mein Ausdruck sieht nun so aus:
(.*?)!(.*?)==(.*?)!

ich übergebe es so:

PHP:
$pattern2 = "(.*?)!(.*?)==(.*?)!";
preg_match_all($pattern2, $item, $tags);  //Ein Item ist z.b. Wetter!weather=3!

jedoch gibt er mir diese Fehler aus:

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '!' in /usr/export/www/hosting/***/blog/wp-content/plugins/mp_meta/mp_meta.php on line 88

Warning: Invalid argument supplied for foreach() in /usr/export/www/hosting/***/blog/wp-content/plugins/mp_meta/mp_meta.php on line 89

Das Foreach-Problem wird sich, hoffentlich, mit dem anderen lösen

Liebe Grüße
Philipp
 
Hallo,

also ich hab zwar noch nicht viel mit RegEx gemacht, aber probiers mal so:

PHP:
$pattern2 = "(.*?)\!(.*?)==(.*?)!";

Also entweder mit '\' oder '/'...
Offensichtlich passt ihm was beim '!' nicht...

Viellecht t es dann ;)

Mfg
 
nein, funktioniert nich hier wieder die Fehlermeldung:

Unknown modifier '\' in /usr/export/www/hosting/pvf/blog/wp-content/plugins/mp_meta/mp_meta.php on line 88

Warning: Invalid argument supplied for foreach() in /usr/export/www/hosting/pvf/blog/wp-content/plugins/mp_meta/mp_meta.php on line 89

mhmm. vielleicht kennt ja einer die Lösung, also bitte dan posten ;-)

Philipp
 
Kleiner Verbesserungsvorschlag:
Code:
/(\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)!(\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)==(\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)!/
 
Zurück