====== Reguläre Ausdrücke ====== Auch reguläre Ausdrücke werden meisst dazu benutzt, um Zeichenketten zu bearbeiten. ===== Leerstellen (blanks) entfernen ===== $str =~ s/^\s+//g ; # am Anfang entfernen # ^ steht in der RegEx fuer Anfang des Strings. # \s ist Tab, Space, Newline und Carriage Return # + heisst mindestens 1 mal oder beliebig mehr $str =~ s/\s+$//g ; # am Ende entfernen # siehe oben, nur # $ - ist das String-Ende (Gegenteil von ^) $str =~ s/^\s+|\s+$//g; # Beides zusammen gefasst $str =~ s/\s+//g; # Entfernt alle BLANKS ==== weitere Beispiele ==== #!/usr/bin/perl use strict; use warnings; use English; # hierdurch kann man die Standardvariablen in Langform benutzen my $regex = qr/^[^:]*:[^:]*:[0-9]{4,}/; # qr = quote regex - das Begrenzungszeichen kann frei gewählt werden. $regex = qr/ ^ # Zeilenanfang [^:]*: # 1. Spalte: Benutzername [^:]*: # 2. Spalte: Password [0-9]{4,} # 3. Spalte: UID /x; # durch das letzte x werden Kommentare #und whitespaces im RegEx ignoriert. while (<>) { chomp; if (m/$regex/) { print "Treffer: |$PREMATCH<$MATCH>$POSTMATCH|$/"; # die Standardvariablen kann man unter "perldoc perlvar" nachgucken. } else { print "Keine Treffer: |$_|$/"; } } ====== Allgemein ====== {{:wiki:regexp.png|}} ===== Beispiele ===== sed -e 's/\([Dd]a\|[Mm]u\)ß/\1ss/g' #Ersetzt einige häufig auftretende Tippfehler dmesg|egrep 'eth[0-9]+' #Suchen aller erkannten Netzwerkkarten egrep '[A-Z]{1,3}-[A-Z]{1,2}[0-9]{1,4}' #Filtert deutsche Autokennzeichen egrep 'M[ae][iy]e?r' #Alle möglichen Kombinationen des Namens egrep '\b([A-Za-z]+)\b +\b\1\b' #Findet Wortdopplungen ===== Links zum Thema ===== * http://www.regenechsen.de/phpwcms/index.php?regex * [[https://regex101.com/ | Online regex tester]]