perl: Frage zu tr

Diskutiere perl: Frage zu tr im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich möchte unter perl Umlaute ersetzen wie folgt ersetzen: $base =~ s/ä/ae/ig; $base =~ s/ö/oe/ig; $base =~ s/ü/ue/ig; $base =~...

  1. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hallo,

    ich möchte unter perl Umlaute ersetzen wie folgt ersetzen:

    PHP:
    $base =~ s/ä/ae/ig;
    $base =~ s/ö/oe/ig;
    $base =~ s/ü/ue/ig;
    $base =~ s/ß/ss/g;
    Ist es möglich, dies auch durch tr zu lösen?

    PHP:
    $base =~ tr/ÄÖÜäöü/.../
    Leider scheitert es daran, dass ich jedes Zeichen nur durch ein Zeichen ersetzen kann und nicht durch ein Doppelzeichen. Vielleicht weiss jemand ne Lösung.

    Gruss, Phorus
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 17.02.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Nein, tr kann nur einzelne Zeichen ersetzen.

    Gruß Wolfgang
     
  4. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ok, danke.

    Gruss, Phorus
     
  5. #4 Wolfgang, 17.02.2006
    Zuletzt bearbeitet: 17.02.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Kleiner Tipp:
    Wenn du viele mögliche Ersetzungen machen musst, dann kann es hilfreich sein, sich dafür ein hash zu basteln.
    e.g.
    Code:
    my %h =( ä => ae, ü => ue, ß => ss);
    my $s="där üble string"; #:-)
       foreach my $k (keys %h){
                 $s=~s/$k/$h{$k}/g;
          }
    ...
    Besonders wenn du viele Teile hast und flexibel bleiben willst, brauchst du nur dein hash ergänzen.
    Auch mit einer map -Funktion gut zu realisieren. ;)

    Allerdings wird es etwas tricky, wenn du die Groß/Kleinschreibung beachten musst.
    Dann müsstest du noch auf Wortgrenzen matchen, und Worte die nur aus Großbuchstaben bestehen extra filtern.

    Gruß Wolfgang
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Gross-/Kleinschreibung ist egal, bei mir ist alles lc. Aber Danke für den Tipp, er verkürzt meinen Quellcode erheblich. :)

    Gruss, Phorus
     
Thema:

perl: Frage zu tr

Die Seite wird geladen...

perl: Frage zu tr - Ähnliche Themen

  1. Änfängerfrage zu Formularen und POST mit PERL

    Änfängerfrage zu Formularen und POST mit PERL: Hallo zusammen, ich möchte mittels Formular DB Einträge vornehmen lassen. Dabei poste ich mein Formular an mich selbst. (method=post) Nun habe...
  2. Perl: Newbie Frage print $

    Perl: Newbie Frage print $: Hallo, muss gerade ein einfach Perl Script anpassen.... möchte das er in eine Datei "#$ -S....." schreibt... hab folgendes im Quellcode...
  3. Perl: Curses::UI Frage

    Perl: Curses::UI Frage: Hallo zusammen Ist ein bisserl schwierig Informationen über das Modul zu finden, deshalb lerne ich es mehr oder weniger mittels Manpages &...
  4. perl: Zusammenführen von Zeilen, die mit Leerzeichen beginnen.

    perl: Zusammenführen von Zeilen, die mit Leerzeichen beginnen.: Hallo, Hintergrund: Das LDIF-Format trennt Zeilen, die größer als 80 Zeichen sind und schreibt in die nächste Zeile ein Leerzeichen. Beispiel:...
  5. perl Hochkommata um Worte im String einfügen?

    perl Hochkommata um Worte im String einfügen?: Hallo, $attributes=' cn dn uid ' wie fasse ich alle Worte in Hochkommata, so dass $attributes=' "cn" "dn" "uid" ' ist? Danke Tom
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden