Reguläre Ausdrücke / Quotes highlighten

JohannesR

Erfahrenes Mitglied
Hallo,

ich versuche grade einen RegEx zu schreiben, der Quotes, also Lines, die mit ">" beginnen, farblich Hervorhebt. Mein bisheriger Ansatz sieht so aus:
Code:
`^([\s]*[>|>]+[\s|\w]*[^\n\r]*)`ism
Leider highlighted dieser Ausdruck ohne erkennbares Muster auch Lines, die *nicht* mit ">" beginnen. Hat vieleicht irgendwer eine Idee, wieso?

Danke,
Johannes
 
Hm, das geht bei mir:
Code:
/(>|> )(.*)[^\n]/m
Hat aber bestimmt auch irgendwelche versteckte Fehler...

Edit:
Und schon einen gefunden: wenn die Zeilen nicht mit > anfangen, aber es
innerhalb der Zeile auftaucht, wird auch gehighlightet.

Edit:
Das geht schon besser:
Code:
/^(>|> )(.*)[^\n]$/m
Hat aber u.A. folgende Macke: Wenn innerhalb eines Quores ein chr(13) ist,
wird die nächste zeile auch noch gehighlightet.

Edit:
Code:
/^([\s]*)(>|> )(.*)[^\n]$/m
Funktioniert auch mit beliebig vilen Tabulatoren vor dem >

Edit:
Fehler mit chr(13) behoben:
Code:
$sText = preg_replace( "/^([\s]*)(>|> )(.*)\r$/m",
                       "<span style=\"color:#FF0000;\">$1$2$3</span>",
                       preg_replace( "/\r[^\n]/", "\r\n", $sText ) );
Edit:
Rot == neu

Nach &gt; kein Leerzeichen, wegen Board (Smilie)
 
Zuletzt bearbeitet von einem Moderator:
Zurück