Codeschnipsel für Reguläre Ausdrücke
von http://www.inspire-world.de/perlcgi/schnipsel/codeschnipselregexe.html,
weitere gibt es bei http://www.regexlib.com
Regexe für Zahlen und Datumsformate
Oftmals kommt es vor das Datumseingaben geprüft werden müssen oder nach solchen Datumsangaben gesucht wird um etwas damit zu tun.
Hier nun einige Beispiele dazu.
Auf ein Datumsformat (22.12.2002) hin prüfen/suchen
Beispielstring: $text ="Text mit Datum 22.12.2002 darin.";
# Sucht nach einem Datum im Format 22.12.2002 if ($text =~ m/\d\d.\d\d.\d\d\d\d/) { print "Text mit Datum gefunden"; } else { print "Text mit Datum nicht gefunden"; }
Andere Schreibweise:
# Sucht nach einem Datum im Format 22.12.2002 if ($text =~ m/\d{2}.\d{2}.\d{4}/) { print "Text mit Datum gefunden"; } else { print "Text mit Datum nicht gefunden"; }
Gefundenen Datum anzeigen:
# Sucht nach einem Datum im Format 22.12.2002 if ($text =~ s/(\d{2}.\d{2}.\d{4})/$1/) { print "Text mit Datum $1 gefunden"; } else { print "Text mit Datum nicht gefunden"; }
Unerwünschte Zeichen filtern/ersetzen
Ein falsches Zeichen, z.B. ein Datensatztrennzeichen - irrtümlicherweise in eine Text Datenbank geschrieben - kann einigen Ärger bereiten.
Auch HTML oder Scriptcode kann einigen Schaden anrichten. Die passenden Gegenmittel will ich hier Beispielhaft auflisten.
Datenbanktrennzeichen filtern am Beispiel der Pipe |
$text =~ s/\|//g; komplett entfernen
$text =~ s/\|/¦/g; anderes/ähnliches Zeichen verwenden ¦
$text =~ s/\|/|/g; Zeichen in Zeichenwert umwandeln |
HTML und Scriptcode filtern
$text =~ s/<[^>]*?>//g; HTML filtern
$text =~ s/<!--(.|\n)*-->//g; SSI und Script Tags filtern
$text =~ s/"/"/g; Anführungszeichen " zu "
$text =~ s/\r//g; Returns (Wagenrücklauf) entfernen
$text =~ s/\n/<br>/g; Zeilenumbruch zu <br> umwandeln
Codeschnipsel für Foren und Gästebuch Codes
Jeder kennt sie, klickbare Smileys oder anderen Spezialcode in Foren und Gästebüchern der dann vom Script in HTML umgesetzt wird.
Einige der wichtigsten Anwendungsbeispiele sind hier aufgeführt.
Smileys zu IMG Tags umwandeln
$text =~ s/\:\)/<img src=\"$smilieurl\/smile.gif\" border=\"0\">/g; $text =~ s/\:D/<img src=\"$smilieurl\/biggrin.gif\" border=\"0\">/g; $text =~ s/\:cool:/<img src=\"$smilieurl\/cool.gif\" border=\"0\">/g;
Dies wandelt die Textcodes :), :D und :cool: in einen entsprechenden IMG Tag um. Dazu ist zu beachten das die Metazeichen maskiert werden müssen.
IMG Tags zu Smileycode umwandeln
Will man Text mit solchem Code editierten ist es nötig das dieser nun wieder in den normalen Smileycode zurückverwandelt wird.
$text =~ s/<img src=\"$smilieurl\/smile.gif\" border=\"0\">/:\)/gi; $text =~ s/<img src=\"$smilieurl\/biggrin.gif\" border=\"0\">/:D/gi; $text =~ s/<img src=\"$smilieurl\/cool.gif\" border=\"0\">/:cool:/gi;
Formatierungsanweisungen zu HTML umwandeln
Um bei eingaben in Formulare HTML zu filtern aber dennoch spezielle Formatierungen wie Textfarben, Listen, Links und dergl. zu ermöglichen werden
ähnlich wie bei den Smileys spezielle Formatierungsanweisungen benutzt.
Text kursiv, fett und unterstichen:
$text =~ s/(\[i\])(.+?)(\[\/i\])/<i>$2<\/i>/isg; $text =~ s/(\[b\])(.+?)(\[\/b\])/<b>$2<\/b>/isg; $text =~ s/(\[u\])(.+?)(\[\/u\])/<u>$2<\/u>/isg;
Ausgehend von diesen Beispielen lassen sich leicht weitere Regexe herstellen zur Textformatierung.
HTML zu Formatierungsanweisungen umwandeln
Auch dieser Code muss beim editieren wieder zurückverwandelt werden.
Text kursiv, fett und unterstichen zurück zu Formatierungsanweisung:
$text =~ s/(<i>)(.+?)(<\/i>)/\[i\]$2\[\/i\]/isg; $text =~ s/(<b>)(.+?)(<\/b>)/\[b\]$2\[\/b\]/isg; $text =~ s/(<u>)(.+?)(<\/u>)/\[u\]$2\[\/u\]/isg;
keywords: perl, regex, regular, expressions,replace,ersetzen,suchen