====== 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]]