Portal > Foren > PHP > PHP-Programmierung > [regex] mehrere Parameter parsen
Antwort
 
Themen-Optionen
Alt 25.02.2008, 21:12 Nach oben    #1
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 521
Standard [regex] mehrere Parameter parsen

Eigentlich kenne ich das Problem, aber ich steh grad aufm Schlauch und bekomms net gebacken...

Ich will einen String der Form {{Name|Param1=Foo|Param2=Bar}} per regex parsen, wobei beliebig viele Parameter vorkommen können, die dann weiterverarbeitet werden sollen.
Im Regex-Tester: http://www.regex-tester.de/uc_270_de.html
Da wird aber nur das letzte Vorkommen von |(.+?) gefunden. Ohne das Fragezeichen könnte ich einfach den Teil Param1=Foo|Param2=Bar nach Pipes splitten, aber ich würde das gerne in einem Regex machen.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 21:19 Nach oben    #2
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

PHP-Code:
$data '{{Name|Param1=Foo|Param2=Bar}}';
preg_match("/".preg_quote("{{")."(.*)".preg_quote("|")."(.*)".preg_quote("|")."(.*)".preg_quote("}}")."/isU"$data$pregMatch);
print_r($pregMatch); 
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 21:53 Nach oben    #3
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 521
Standard

Zitat:
Zitat von $traight-$hoota Beitrag anzeigen
wobei beliebig viele Parameter vorkommen können

Das Pattern soll also auch auf {{Name|Param1=Foo|Param2=Bar|Param3=Blub|Name=Pete r|Zahl=1337}}
passen.
__________________
Weißt Bescheid - Scheiß wie weit

Geändert von $traight-$hoota (25.02.2008 um 21:55 Uhr).
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 22:17 Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Wenn innerhalb der Parameter kein |, { und } vorkommt, könnte man einen ganz einfachen Weg gehen: '/[^\|{}]+/'
Die einzelnen Parameter wie
Code:
Param1=Foo
könnte man dann später splitten.
http://www.regex-tester.de/uc_271_de.html

Geändert von CIX88 (25.02.2008 um 22:24 Uhr).
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 22:52 Nach oben    #5
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 521
Standard

Hm das braucht dann aber auch noch nen weiteren Regex, weil der String erstma aus nem größeren Text herausgefiltert werden muss (hab ich vergessen, zu erwähnen).

Ja, die Parameter-Wert Paare mach ich dann extra, es sind prinzipiell auch parameter ohne Wert (und ohne Gleichheitszeichen) möglich, aber das mach ich dann per strpos und substr.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.02.2008, 22:58 Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 18.03.2005
Beiträge: 591
Standard

Naja ich bin jetzt nur von deinen Beispiel ganz oben aus gegangen.
Der Text wird aber sicherlich nicht so groß sein, dass dann mehere MBs Text per regex durchsucht werden müssen.
CIX88 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Svg parsen in java??? Aristotelis Enterprise Java 3 25.05.2007 14:44
Anzahl übergebener Parameter rausfinden SRIT JavaScript und AJAX 2 25.02.2007 09:32
[PERL] Parameterhandling bei Perl WarrenFaith Tutorials 0 01.03.2006 12:33
Parameter für Firefox Buhmann Plauderecke 3 29.08.2005 17:19
float als parameter klappt nicht p-flash Allgemeine Java-Programmierung 3 09.12.2004 03:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:30 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44