[REGEX] Email-Adressen aus String lesen!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [REGEX] Email-Adressen aus String lesen!

    Hallo, ich habe das Problem das ich email-Adressen aus einem String lesen will!!!

    ich tüfftel die ganze zeit nur rum, aber mit regex kenn ich mich ne so gut aus!

    PHP-Code:
    $s='das ist ein text mit einer [email]test@mail.com[/email] adresse die gefiltert werden soll!';
    $_pat "^[_a-zA-Z0-9-]+(.[_a-zA-z0-9-]+)*@([a-z0-9-]{3,})+.([a-zA-Z]{2,4})$";
    preg_match_all("|$_pat|i",$s,$outPREG_SET_ORDER);

    print_r($out); 
    kann mir einer helfen und sagen wie das richtig aussehen muss???

    Danke!

  • #2
    liest doch mal die User Contributed Notes in http://www.php.net/preg_match

    Kommentar


    • #3
      dort finde ich nur validationen. ich möchte aber nicht wissen ob ein adresse valid ist sondern adressen aus einem text filtern!

      Kommentar


      • #4
        wenn aber eine Email-Adresse nicht valid ist, ist sie denn eine Email-Adresse? D.h. wiederum, wenn die Email-Adresse valid ist dann hast du sie auch im 3. Parameter von preg_match stehen

        Kommentar


        • #5
          PHP-Code:
          $s='das ist ein text mit einer [email]test@mail.com[/email] adresse die gefiltert werden soll!';
          $_pat="^[_a-zA-Z0-9-]+(.[_a-zA-z0-9-]+)*@([a-z0-9-]{3,})+.([a-zA-Z]{2,4})$";
          preg_match("|$_pat|i"$s$out);

          print_r($out); 
          dann sollte es so gehen, tuts aber nicht. Da fehlt doch was im regex, betreffend dem text vor und nach der email-Adresse!?

          Kommentar


          • #6
            weisst du was ^ und $ in deinem Pattern bedeutet? Mach dich mal schlau drüber, dann sollte es gehen

            Kommentar


            • #7
              das bedeutet zeilenanfang und ende. das weiß ich. hab ich übersehen!

              allerdings ist das ergebnis nicht wie ich es mir vorgestellt habe!

              Array ( [0] => das ist ein text mit einer test@mail.com [1] => test [2] => mail [3] => com )
              und wenn die adresse vorname.nachname lauten würde würde es so aussehen :

              Array ( [0] => das ist ein text mit einer vorname.nachname@mail.com [1] => .nachname [2] => mail [3] => com )
              ???

              Kommentar


              • #8
                schau: http://pcre.nophia.de/evaluate/6f847...dex.php#output

                Kommentar


                • #9
                  Der Punkt trifft auf ein beliebiges Zeichen, auch auf ein Leerzeichen. Du musst als Bedingung anfügen, dass vor und nach der E-Mailadresse Leerzeichen sein müßen...

                  EDIT: Siehe ASPs Post...
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar


                  • #10
                    Danke haut einwandfrei hin!

                    Kommentar

                    Lädt...
                    X