 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
14.06.2008, 12:13
|
#1
|
|
TP-Supporter
Registriert seit: Nov 2005
|
[RegEx] Delimeter - Inhalt - Delimeter
Hallo zusammen!
In einem String wird ein bestimmter Bereich mit 2 Delimetern begrenzt. Ich möchte nun an den Inhalt dazwischen kommen und zwar der schönheit halber mit einem regülären Ausdruck.
Der Anfangsdelimeter ist: {--[--(
Der Enddelimeter ist: )--]--}
Meine RegEx: "^\{--\[--\((.*)?\)--\]--\}$m!"
Da wird nur nichts gefunden und ich verstehe nicht wieso. Suche ich nur nach den Delimetern werden sie gefunden. Es bringt auch nichts das ^ oder das $ wegzulassen. Der m Modifierer muss doch richtig sein, weil ein Text ja über mehrere Zeilen geht.
Hat jemand ne Idee, was ich falsch mache?

|
|
|
14.06.2008, 18:07
|
#2
|
|
TP-Supporter
Registriert seit: Nov 2005
|
Also es liegt definitiv daran, dass der Text dazwischen über mehere Zeilen geht.
Habe das jetzt so gelöst, dass ich voher aus dem string alle Zeilenumbrüche lösche:
$string = preg_replace("/(\r)|(\n)|(\t)/i","",$string);
Würde mich aber trotzdem freuen, wenn das noch einer nur mit ner regex hinkriegt! 
|
|
|
14.06.2008, 20:14
|
#3
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Hallo Sand*mann,
vielleicht nicht die sauberste Variante, weil RegEx nicht meine Stärke ist, aber es scheint zu funktionieren.
PHP-Code:
$text = <<<LANGERTEXT
Donec vitae felis tincidunt magna. {--[--( Sed condimentum est eget nulla. Cras odio ante, lobortis id, bibendum et,
gravida non, odio.
Pellentesque pharetra suscipit nisl. )--]--} Vivamus a dolor sit amet massa adipiscing hendrerit.
LANGERTEXT;
preg_match( "|^.*\{--\[--\((.*)\)--\]--\}.*$|siUm", $text, $treffer );
echo "<pre>" .print_r( $treffer, true ). "</pre>";
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
14.06.2008, 20:43
|
#4
|
|
TP-Supporter
Registriert seit: Nov 2005
|
Hi!
Ja sicher. Das mit ^.* und .*$ leuchtet voll ein. Mit den modifierern bin ich allerdings immer noch nciht so ganz im reinen. Bei meinen tests hat zB ein s ausgereicht. 
|
|
|
14.06.2008, 21:09
|
#5
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Ein einfaches Danke hätte auch gereicht.
Ansonsten nimmst Du eben nur die Modifier, die Du auch benötigst. Welche das im einzelnen sind ist von der Situation abhängig. Hier sind sicherlich i (caseless) und U (ungreedy) unnötig.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
14.06.2008, 21:34
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
tja, da erwartest Du auch zu viel. ich hab da so meine Kandidaten, die so auf Hilfe reagieren und daher keine mehr bekommen.
|
|
|
14.06.2008, 21:35
|
#7
|
|
TP-Supporter
Registriert seit: Nov 2005
|
Tut mir leid, so war das nicht gemeint!
Ich hab bei regulären ausdrücken nur irgendwie n brett vorm kopf...
naja ich werd mir das bei gelegenheit nochmal anschauen...
Vielen Dank!
|
|
|
14.06.2008, 21:39
|
#8
|
|
TP-Supporter
Registriert seit: Nov 2005
|
Wenn ich mir das durchlese kann man das wirklich in den flaschen hals kriegen, sry.
Das "Ja sicher" war gemeint wie "Achja, stimmt, natürlich".
Und das mit den modifieren sollte einfach heißen, dass ich es nicht verstehe.
Werde das nächste mal besser darauf achten, war wirklich nicht so flapsig gemeint!
|
|
|
14.06.2008, 21:52
|
#9
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Schon okay. Einen guten RegEx Kurs findest Du hier. Da werden eigentlich genug Beispiele zu den unterschiedlichen Modifikatoren gegeben.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
15.06.2008, 00:28
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
noch ein Tipp bei der Erstellung mit Delimiter: PHP hilft einem bei der Erstellung, insbesondere bei Maskierung von Sonderzeichen mit der Funktion preg_quote
und bei solchen Delimtern reicht der Modifikator s völlig aus
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
Ähnliche Themen
|
| Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
|
RegEx - Problem
|
webdepp |
Traum-Dynamik |
5 |
09.03.2007 00:22 |
|
Geeigneter RegEx
|
Spin |
Traum-Dynamik |
5 |
24.09.2006 13:28 |
|
RegEx
|
Nico |
Traum-Dynamik |
9 |
03.05.2005 20:11 |
|
Regex
|
Nico |
Traum-Dynamik |
11 |
02.02.2005 16:21 |
|
ß im Regex
|
jph |
Traum-Dynamik |
7 |
05.08.2003 21:09 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:37 Uhr.
|
 |