HTML & CSSJavascriptPerlPHPIndex | Download | Suche 

SYNTAX
Allgemeines | Konstanten | Variablen | Zeichenketten | Zahlen | Operatoren | Kontrollstrukturen | Funktionen, Subs | Bibliotheken | Ein- und Ausgabe | Dateien lesen& schreiben | Suchen& ersetzen | reguläre Ausdrücke | Module
WEITERES Beispiel- Perlscripts | Links zum Thema Perl

Suchen und Ersetzen

In Perl können mit Hilfe von regulären Ausdrücken bestimmte Zeichen oder Zeichenfolgen durch andere ersetzt werden:

Zeichenkette =~ s/Suchen/Ersetzen/(Optionen)

Mit Zeichenkette ist meistens eine Variable gemeint. Bei Suchen kann ein regulärer Ausdruck eingesetzt werden. Sollen mehrere Zeichen(folgen)/reguläre Ausdrücke gesucht/ ersetzt werden, sind diese mit einem senkrechten Strich | zu trennen. Bei Ersetzen Zeichenfolge notieren, welche den bei Suchen angegebenen Begriff ersetzen soll. Bei Optionen können mehrere Parameter gesetzt werden, wobei vor allem die ersten zwei von Bedeutung sind:

g: Es wird global gesucht/ ersetzt (ansonsten nur erste Fundstelle).
i: Gross-/ Kleinschreibung wird nicht unterschieden (case insensitive).
s: Weiche Zeilenumbrüche (\n) werden ignoriert.
m: Gegenteil von s.
x: Lange Muster dürfen mehrzeilig und mit Kommentaren notiert werden.
o: Muster wird nur einmal kompiliert. "Wird nur eingesetzt, wenn sich das Suchmuster beim Kompilieren schon bekannt ist und sich während des Programmdurchlaufs nicht mehr ändert."

Beispiele:
$Text = "Die Temperatur betrug heute 37 Grad Celsius";
$Text =~ s/[a-z]| //gi; #Alle Buchstaben und Leerzeichen werden ersetzt bzw. gelöscht

$Text = "Die Temperatur betrug heute 37 Grad Celsius";
$Text =~ s/[^0-9]//g; #Alles ausser Zahlen wird ersetzt bzw. gelöscht

$Text = "Daheim ist es am schönsten";
$Text =~ s/ö/\&ouml\;/g;

Achtung: Den 'Sonderzeichen' ( +-?.*^$()[]{}|\ ) einen Backslash \ voranstellen! (s. zweites Beispiel, \&ouml\;)

Mehr Informationen zum Thema reguläre Ausdrücke gibt es im entsprechenden Kapitel.



Einfaches Suchen

Beispiel:
foreach (@main) {
if ($_ =~ /<!--comments-->/){ // Falls gefunden, neu schreiben und Listenpunkt anhängen
print MAIN "<!--comments-->\n";
print MAIN "<li>$komplett<li>";
}
else {
print MAIN "$_"; // ansonsten aktuelles Element d. Arrays (vordefinierte Variable $_) schreiben
}
}