Thread patern matching
(10 answers)
Opened by olruebe01 at 2007-11-10 13:40
Hallo Forum,
mir liegt mal wieder ein Stein im Weg... Ich habe einen ewig langen Text (in $content) und möchte nun den kürztmöglichen Satz finden, der mit "Haus" gebinnt, mit "Zaun" endet und es muss "Wiese" und "Garten" dazwischen vorkommen (in der Reihenfolge). Zwischen diesen 4 Wörtern können beliebig viele Zeichen sein aber es soll das kürztmögliche Ergebnis gefunden werden. Anfangs gucke ich erstmal, ob mein Kriterium überhaupt erfüllt wird. Meine Idee: Code: (dl
)
if($content =~ /<Haus.*Wiese.*Garten.*Zaun/) { print "ja";} Klappt soweit auch. Aber jetzt komme ich nicht weiter. Wie kann ich mir den ganzen Satz ausgeben lassen, also print...? Zweites Problem: Was ist, wenn meine Text über mehrere Zeilen geht? Mein obige Beispiel geht nur, solange der zu suchende Text in der selben Zeile gefunden wird. Der . steht ja für "irgendein Zeichen ausßer Newline". Also habe ich dies probiert: Code: (dl
)
if($content =~ /Haus[.\n]*Zaun/) { ...} Gedanke: Finde "Haus", dann irgendein Zeichen außer Newline (Punkt) oder Newline und das auch mehrmals. Aber das war auch nichts... Ich habe auch noch andere Versuche gestartet aber alle waren Fruchtlos. Schonmal Danke für Eure Hilfe. |