preg_match_all() Parameter

  • Ok ich denke ich habe das falsche Wort benutzt ich meinte die
    Patternmöglichkeiten von preg_match_all.
    Ich verstehe auch nicht warum man zu den "" ein "!!" oder "//"
    als Begrenzer des Patterns nutzt, da dies doch eigentlich die
    "" schon machen.

  • Das sind reguläre Ausdrücke. "" fassen für PHP nur den regulären Ausdruck (regexp) als String ein. Der regexp selber wird dann nochmal mit zwei identischen anfangs- und schlusszeichen eingegrenzt, z.B. mit so /regexp/.

    einfaches beispiel, ich prüfe, ob am anfang eines mixed-strings eine zahl ist:

    Code
    preg_match_all('/^([0-9])/', $string, $matches);


    / = regexp fängt an
    ^ = der wert wird am anfang des strings erwartet, nicht einfach irgendwo im string
    ( = hier beginnt der beschrieb dessen, was ich suche
    [ = eckige klammern enthalten jeweils einen bestimmten zeichensatz, den ich gerade definiere:
    0-9 = irgendeine einstellige zahl
    ] = der zeichensatz ist beschrieben, schlussklammer
    ) = meinen suchwert ist beschrieben, schlussklammer
    / = mein regexp ist fertig

    In diesem thread wurde ein link gepostet zu einem deutschen tutorial:
    https://www.forum-hilfe.de/showthread.php?t=43037

    alles andere was du darüber wissen musst:
    http://www.regular-expressions.info/tutorial.html

    reguläre Ausdrücke haben verschiedene "Dialekte", hier steht alles PHP/PERL spezifische:
    http://ch.php.net/manual/de/book.pcre.php

    Übernimm dich nicht beim lernen, du könntest die Welt in einem regexp abbilden :)
    Lern einfach mal die Grundsätze und dann jedes mal einfach das dazulernen, was du gerade brauchst.

    9 Mal editiert, zuletzt von phore (30. Mai 2009 um 14:09)

  • Code
    preg_match_all('/^([0-9])/', $string, $matches);

    Klar PHP ist nicht gut in stringverwaltung , aber es gibt ja schon ein paar string funktionen, deswegen muss man nichti mmer auf ein regexp zurückgreifen , in dem fall :

    $test = $string[0];
    if(intval($test)) {echo 'Eine Zahl'; }


    Viel sinnvoller:) spirch nur in notfall regexp, oder für ganz faule...^^

  • Zitat

    Was ist für dich eine backlinkprüfung?


    Seite eintragen - Seite auslesen - Domain extrahieren - Gucken ob
    extrahierte Domain = http://iwas.de

    Könnte mir vielleicht wer ein Beispiel schreiben wie man mit preg_match_all alle title=" " Beschreibungen von Bildern
    auslesen kann. Weil ich weiß nicht wann man \ <- das nutzen
    muss und wann nicht bzw. wie das mit den " oder ' Handling
    aussieht. Wird hier einfach wie in PHP üblich escaped? "\"