Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Suchen und Ersetzen in String was bedeutet \s





Frage

Wer kann mir erklären, was der nachfolgende Code macht - also was die einzelnen Befehle bewirken, vor allem das mit den \s\s... ?? $Month = $Result[0]; shift(@Result); $Month =~ s/\s\s\s*//g; Danke

Antwort 1 von MixMax

also -
das ist vermutlich Perl und kein PHP
es sind 3 Zeilen,
  • Variable $Month belegen mit dem ersten Arrayelement.
  • Erstes Arrayelement entfernen
  • entfernen aller whitespaces wenn sie zu einer gruppe von min 2 gehören.


    das ganze ließe sich auch so schreiben :
    $Month = shift(@Result);
    $Month =~ s/\s{2,}//g;
    



  • Antwort 2 von Ralfinator

    Das ist von einer CGI-Datei...Muss ich da also bei Perl suchen, nicht bei den PHP-Befehlen!? :-)

    Naja, wo kann man denn das mit den /s's nachlesen oder besser wie nennt man die überhaupt??

    Ich denk, dann krieg ich den Rest in den Griff :-)

    (Perl, und ich such bei PHP :-))))
    Kann ja jedem mal passieren!!)

    Antwort 3 von MixMax

    Es gibt ein schönes Buch - Perl das Einsteigerseminar von bhv, das nehme ich immer zum nachschlagen.

    benutzt du
    $Variable =~ m/regulärer Ausdruck/
    wird nur etwas gesucht
    $Variable =~ s/regulärer Ausdruck/String/
    wird ersetzt,

    \a = sucht alarmzeichen (Piep)
    \e = sucht nach einem Escape zeichen
    \f = sucht nach einem Seitenvorschub
    \n = sucht ein Zeilenvorschub
    \r = sucht Wagenrücklauf
    \s = sucht ein leerzeichen oder \t \n\r \f
    \S = umkehrung von \s
    \t = sucht ein Tabulatorzeichen
    \b = sucht Wortgrenze
    \B = umkehrung von \b
    \A = sucht nach Anfang des Strings
    \Z = sucht nach dem ende
    \d = sucht eine Ziffer (0-9)
    \D = sucht alles andere als eine Ziffer
    \w sucht ein Wortzeichen (a-z und A-Z und _ aber NICHT öäüÖÄÜß)
    \W sucht etwas was kein Wortzeichen ist
    . = ein beliebiges Zeichen

    gruppieren geht mit []
    ^ kann zum negieren benutzt werden
    also findet [\w126^gG]
    alle Wortzeichen außer g oder G und die zahlen 12 und 6

    dabei in dem fall nur ein Zeichen
    [\w126^gG]+
    findet also eine Kette mit mindestens einem dieser aber möglichst vieler dieser zeichen
    [\w126^gG]{3,12}
    findet 3-12 (möglichst versucht er 12 zu finden) dieser zeichen

    [\w126^gG]* findet garkeins bis möglichst viele der Zeichen, also
    abcd*ef findet abcdef aber auf abcef oder abcdddddef

    mit einem \ können die Zeichen maskiert werden die eine sonderfunktion haben also .^$()[]{}|\?+* etc aber auch der selber.

    die Klammer kann benutzt werden um teile des erkannten strings auszugeben
    mit "abefdfeffhss" =~ m/([def]*)/;
    kann man wird $1 = "efdfeff" sein, die erste klammer hat $1, die 2. hat $2 etc.


    nach dem letzten / (bei s also nach s/// bei m nach m// ) kannst du i benutzen um groß und kleinschrift zu ignorieren

    bei s/// kannst du g hinterstellen also s/A/Z/g damit alle A's gegen Z's ausgetauscht werden, läßt du g weg wird nur das 1. gefundene A ersetzt.

    es geht aber noch mehr, bin wahnsinnig enttäuscht das es das nicht bei ASP gibt weil man damit am besten gültigkeit von emailadressen prüfen kann etc..., aber ich gehe nun ins bett.


    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: