kostenloser Webspace werbefrei: lima-city


Spezielle Zeichenkette übersetzen, regular expressions

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    Guten Abend,

    seit gut einer Stunde suche ich bereits im Web nach einer Listung der regulären Ausdrücke, konnte bisher jedoch nicht so recht fündig werden. Im Speziellen geht es um zwei Zeichenketten, die per PHP-Code ersetzt werden sollen. Weil ich an dem abgetippten Code jedoch alles verstehen möchte, habe ich versucht die Teile eigenständig zu übersetzen, das klappt jedoch nur unzureichend.
    Bitte um Hilfe!

    Teil 1:
    /(\s{4})\s+/


    Dass bei {4} eine Wiederholung maximal 4 Mal möglich ist, weiß ich bisher. Jedoch nicht, was genau wiederholt werden soll.
    \s bezeichnet ein Leerzeichen


    Teil 2
    ~(.)(){4,}~
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Meistens ist es bei regular expressions immer so das zuerst gesagt wird was gesucht wird und dann wie oft.
    -finde den buchstaben B
    -aber nur wenn er vier mal hintereinander kommt:
    B{4}

    -finde den buchstaben B
    -aber nur wenn er vier mal hintereinander kommt oder mehr als vier mal
    B{4,}

    -finde den buchstaben B
    -aber nur wenn er einmal oder mehr als einmal vorkommt
    B{1,}
    wobei es für {1,} eine kurzform gibt (+)
    B+



    /(\s{4})\s+/

    finde leerzeichen (\s) exakt(!) vier mal, gefolgt von leerzeichen (\s) die mindestens einmal und maximal unendlich oft (+) vorkommen
    Merke dir nur die vier leerzeichen.
    klickmich


    ~(.)(){4,}~

    Ich vermute gemeint ist:
    /(.{4,})/

    Was heissen würde:
    -finde ein beliebiges Zeichen ausser white-space(=leerzeichen/umbruch/tab u.ä. je nach voreinstellungen).
    -Dieses beliebige Zeichen muss aber mindestens vier mal vorkommen (beacthe das Komma).
    -Merke dir die Treffer (die runden klammern veranlassen das)
    klickmich


    Zur Übersicht:

    http://de.selfhtml.org/javascript/objekte/regexp.htm#dollar_1_9
    http://www.sql-und-xml.de/regex/glossar.html

    Was Du verstehen solltest:

    {n}
    Fordert genau n Übereinstimmungen
    {n,}
    Mindestens n Übereinstimmungen erfüllen
    {n,m}
    Mindestens n, höchstens m Übereinstimmungen sind erlaubt
    +
    Eine oder mehr Übereinstimmungen, gleichbedeutend zu {1,}
    .
    Der Punkt steht für alle Zeichen mit Ausnahme von \n. Ist die Single-Line-Option gewählt, dann ist \n mit eingeschlossen.








    Beitrag zuletzt geändert: 15.1.2011 3:52:57 von simuliertes
  4. Autor dieses Themas

    createtheweb

    createtheweb hat kostenlosen Webspace.

    $eintrag = preg_replace('/(\s{4})\s+/', '', $eintrag);


    Die obige Zeile würde also bedeuten, dass alle Stellen, wo mehr als vier Leerzeichen eingegeben werden, quasi gelöscht werden.
    Die Frage, die sich mir jetzt stellt wäre, warum der Autor des Quelltextes dann noch folgende Zeile vorangehen lässt:

    $eintrag = trim($eintrag);


    Das wäre doppelt gemoppelt, oder nicht?
  5. createtheweb schrieb:
    $eintrag = preg_replace('/(\s{4})\s+/', '', $eintrag);

    Die obige Zeile würde also bedeuten, dass alle Stellen, wo mehr als vier Leerzeichen eingegeben werden, quasi gelöscht werden.

    richtig.
    In diesem zusammenhang ist es eigentlich dasselbe wie:
    $eintrag = preg_replace('/\s{5,}/', '', $eintrag);



    createtheweb schrieb: .
    Die Frage, die sich mir jetzt stellt wäre, warum der Autor des Quelltextes dann noch folgende Zeile vorangehen lässt:

    $eintrag = trim($eintrag);


    Das wäre doppelt gemoppelt, oder nicht?

    Nein, Weil trim alle Leerzeichen am Anfang und Ende des strings enfernt, unabhängig davon wieviele es sind (sozusagen /\s+/).
    Üblich ist das zB beim einloggen, weil die Benutzer ja Leerzeichen am Anfang & Ende nicht sehen und sich dann wundern würden warum das einloggen mit ihrem Namen nicht klappt.




    Beitrag zuletzt geändert: 16.1.2011 10:36:20 von simuliertes
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!