Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— |
regulaere_ausdruecke [2016/08/25 16:23] (aktuell) admin angelegt |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Reguläre Ausdrücke ====== | ||
+ | Auch reguläre Ausdrücke werden meisst dazu benutzt, um Zeichenketten zu bearbeiten. | ||
+ | ===== Leerstellen (blanks) entfernen ===== | ||
+ | <code perl> | ||
+ | $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 | ||
+ | </code> | ||
+ | |||
+ | ==== weitere Beispiele ==== | ||
+ | <code perl> | ||
+ | #!/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: |$_|$/"; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ====== Allgemein ====== | ||
+ | {{:wiki:regexp.png|}} | ||
+ | |||
+ | ===== Beispiele ===== | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | ===== Links zum Thema ===== | ||
+ | |||
+ | * http://www.regenechsen.de/phpwcms/index.php?regex | ||
+ | * [[https://regex101.com/ | Online regex tester]] |