Regular Expressions (RegExp) sind zwar unglaublich praktisch und mächtig, aber oft auch etwas trickreich. Um nicht immer wieder herumprobieren zu müssen, sammle ich sie hier.
| RegExp | Beschreibung |
|---|---|
| /[^\r]$ | Sucht alle Zeilen, die kein Carriage-Return-Zeichen am Ende haben |
| :%s/\(<A .*><IMG .*align=" | vi: setzt in HTML-Dateien vor alle verlinkte Bilder einen <BR>-Befehl, damit gleich ausgerichtete Bilder nicht nebeneinander stehen |
| ^[_\.0-9a-z-]+@([0-9a-z] | prüft, ob eine E-Mail-Adresse ein gültiges Format hat (von Kristian Köhntopp aus de.comp.lang.php) |
| /<\/P>$/<\/P><\/LI>/ | fügt in HTML, das z.B. StarOffice erzeugt, ein schließendes </LI>-Tag |
| :%s/.*latitude="\([0-9]*\)\.\([0-9]*\)" longitude="\([0-9]*\)\.\([0-9]*\)".* | vi: extrahiert aus einer gpspoint-Datei die Koordinaten (Länge - Tabulator - Breite) und wandelt den Dezimalpunkt in ein Komma um |
| :%s/\([^<>]\{1,\} | vi: setzt in längeren Zeichenketten HTML-Trennzeichen <WBR> ein; erster Entwurf, noch werden keine HTML-Tags ausgespart |
| /^ *suchbegriff . | man: um in einer langen Manpage (z.B. bash) nach einem Begriff am Zeilenanfang zu suchen (eingerückt), der sonst auch im Text vorkommt |
| sed -n -e 's/.*[[:space:]] | sed: um aus einer HTML-Datei alle Wörter mit Sonderzeichen zu extrahieren (Bugs: es darf nur ein Sonderzeichen vorkommen) |
| :%s/\(\r\)<br \/>$/<br \/>\1/g | vi: Frühere Versionen von PHP haben bei der Funktion nl2br() (fügt an die Zeilenumbrüche ein <br />-Tag ein) in Zusammenhang mit DOS-Zeilenumbrüchen (\r\n) den Fehler, dass das \r-Zeichen nachher vor dem br-Tag stand. Hiermit wird das korrigiert. Der Patch mit \1 statt \r ist nötig, weil sonst ein kompletter Zeilenumbruch (\r\n) eingesetzt würde. |
| :%s/^\(.\{80\}[^ ]*\) /\1\r/g | vi: bricht lange Zeilen beim ersten Leerzeichen hinter der 80-Zeichen-Marke um |