Benutzer-Werkzeuge

Webseiten-Werkzeuge


regulaere_ausdruecke

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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]]
regulaere_ausdruecke.txt · Zuletzt geändert: 2016/08/25 16:23 von admin