Reguläre Ausdrücke / domainnamen finden

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

  • Reguläre Ausdrücke / domainnamen finden


    mein Frage für heute:
    ich soll aus einem Array mit diversen Einträgen Domainnamen (ohne http://www) filtern.
    Mein code dazu:
    PHP-Code:
       //filtert domains: beliebig viele Zeichen, Punkt, { mind. 2 max. 4 Zeichen }
       //i => Groß / Kleinschreibung egal
       
    $expDomain "/*\.{2,4}/i";
       
    //filtert xxx.co.uk domains: 
       //beliebig viele Zeichen, Punkt, 2 Zeichen, Punkt, 4 Zeichen 
       
    $expCoUk "/*\.{2}\.{2}/i"
    //nächste Zeile ist die Zeile 164
       
    if(preg_match($expDomain$this->position[$j]['bez_1']) or
          
    preg_match($expCoUk,    $this->position[$j]['bez_1'])   ){  
    // jede Menge Code, um die Ergebnisse in ein Array zu übertragen
       

    Ich bekomme dann folgende Fehlermeldung:
    PHP-Code:
    WarningCompilation failednothing to repeat at offset 0 in /home/www/web3/phptmp/class/class.Rechnung.inc on line 164 
    bei einer anderen Bedingung im if-Block gibt's diese Meldung nicht.
    Was bedeutet die Fehlermeldung ?
    Ist der reguläre Ausdruck ok. oder kennt jemand noch 'ne andere Möglichkeit, um Domainnamen zu filtern ?
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    PS:
    Die Punkte in den regulären Ausdrücken sind
    gefiltert,

    $expDomain = "/*\.{2,4}/i";
    //filtert xxx.co.uk domains:
    //beliebig viele Zeichen, Punkt, 2 Zeichen, Punkt, 4 Zeichen
    $expCoUk = "/*\.{2}\.{2}/i";

    die Backslashes wurden mir mit dem Source-Code-Tag geklaut.......;
    hab's in der Vorschau übersehen
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar


    • #3
      Deine Regulären Ausrücke sind etwas sinnlos:

      /*.{2,4}/i müsste wenn überhaupt /.{2,4}/i heißen, würde dann auf 2 oder 4 beliebige Zeichen zutreffen.

      /*.{2}.{2}/i müsste /.{2}.{2}/i heißen, und würde auf 2 beliebige Zeichen, gefolt von 2 weiteren beliebigen zeichen zutreffen, im Endeffekt das gleiche wie /.{4}/i

      EDIT:

      OK, jetzt fehlt vor den * nur noch jeweils ein .

      hopka.net!

      Kommentar


      • #4
        warum ?
        * == beliebig viele Zeichen
        \. == es soll ein Punkt vorkommen; da Punkt selber ein Metacharakter mit dem Backslash maskiert
        {2,4} == 2 bis 4 Zeichen (de, name)
        für xxx.co.uk entsprechend......................
        "I don't want to belong to any club that would accept me as a member."

        Groucho Marx

        Kommentar


        • #5
          lest mal lieber nach über regular expressions.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            haben ein schönes tutorial dazu.

            Kommentar


            • #7
              Moin Leute,
              TobiaZ
              haben ein schönes tutorial dazu.
              wo finde ich das denn ??
              "I don't want to belong to any club that would accept me as a member."

              Groucho Marx

              Kommentar


              • #8
                Original geschrieben von mcmurphy
                Moin Leute,

                wo finde ich das denn ??
                bei den tutorials?
                http://www.php-resource.de/tutorials

                genauer gesagt: http://www.php-resource.de/tutorials/read/10/1/
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  THX
                  "I don't want to belong to any club that would accept me as a member."

                  Groucho Marx

                  Kommentar


                  • #10
                    So, wenns interessiert:

                    /.*\./i
                    findet einen String, der einen Punkt enthält zb.:
                    meindomainname.de

                    /.*\.(com|org|net)$/i
                    findet
                    domain.org
                    domain.net
                    domain.com

                    /.*\.co.uk$/i
                    findet
                    domainxyz.co.uk

                    bis bald.................................
                    "I don't want to belong to any club that would accept me as a member."

                    Groucho Marx

                    Kommentar


                    • #11
                      findet aber auch
                      (&/%&.org
                      , etc
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar

                      Lädt...
                      X