probleme mit den regex (nach tut)

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

  • probleme mit den regex (nach tut)

    hi

    ich bin da gerade ein kleines script am verbessern.

    auf jeden fall habe ich mom. 4 regexe, welche jeweils die URL von einer seite auflisten.


    //links auslesen
    preg_match_all("|href=\"(.*)\"|Ui", $contents, $temp1);
    preg_match_all("|href='(.*)'|Ui", $contents, $temp2);
    preg_match_all("|href= \"(.*)\"|Ui", $contents, $temp3);
    preg_match_all("|href= '(.*)'|Ui", $contents, $temp4);
    $arrayoflinks=array_merge($temp1[1],$temp2[1],$temp3[1],$temp4[1]);


    also, klar, das könnte man evt. auch alles in einem nehmen, aber dass ist nicht der sinn, da ich nachher auch noch die informationen brauch, wie er angegeben worden sit.

    also jetzt findet er diese links:

    href="test.htm"
    href='test.htm'
    href= "test.htm"
    href= 'test.htm'

    ich brauche jetz aber noch den, der das hier findet:
    href=test.htm

    also ihne '/" das problem ist, das wenn ich die '/" im regex einfach weglasse, das er dann alle doppelt findet.
    also brauche ich im regex einen ohne-'/"

    wie geht das??

    also ich habe mal irgendwas gefunden, dass man mit der negativer ¨lookhead assortion (?! irgendwas ausschliessen kann.

    aber irgendwie bin ich für die regexe noch zu dumm.
    oder die zu komplex.

    naja, auf jeden fall wäre es super, wenn mir jemand den regex dazu geben könnte.

  • #2
    Re: brauche regex für "href=test.htm"

    Original geschrieben von fabio
    naja, auf jeden fall wäre es super, wenn mir jemand den regex dazu geben könnte.
    Ne, wir sind ja hier im Brainstorming-Forum. Du musst das nur so machen, dass du anstatt mit (.*) jedes beliebige Zeichen hinter href= zu matchen musst du die einfachen bzw. doppelten anführungsstriche ausnehmen.
    hopka.net!

    Kommentar


    • #3
      an dieser Stelle empfehle ich immer gerne unser Tutorial zu diesem Thema.

      Kommentar


      • #4
        probleme mit den regex (nach tut)

        hi

        ich glaube ich bin wirklich zu dumm für diese regex.

        ich habe da mal einen gemacht:
        PHP-Code:
        $contents="<a href='pics/3.htm' >
        <a href=\"pics/4.htm\" >
        <a href= 'pics/5.htm'>
        <a href= \"pics/6.htm\">
        <a href= pics/7.htm>
        <a href= pics/8.htm>
        <a href=pics/9.htm>
        <a href=pics/10.htm>"
        ;
        preg_match_all("/href=('|\"| |)(.*)($1)>/uim"$contents$temp);
        print_r($temp); 
        also, nun sollte dieser ja nach einen "href=" gefolgt von (einem ' oder " oder leerschlage oder nichts) plus dann einen zeichen wert, der wiederum mit dem gleichen zeichen wie bei den ' / " /.. endet.
        dies wird ja mit dem Backreferences ($1) gemacht.

        aber leider funktioniert das überuapt nicht.



        also, ich habe jetzt mal das tutorial hier gelesen, aber irgendwie versteh ich das einfach nicht.

        sorry

        plz help

        Kommentar


        • #5
          es ist doch nicht nötig dafür nen neuen Thread aufzumachen, oder?

          *zusammenführ*

          Kommentar


          • #6
            hm, ja stimmt eigentlich schon.
            dachte es wäre noch im anderen board.

            egal, die frage ist immer noch offen, und leider komme ich da nicht drauf.

            also ich bräuchte wie schon gesagt einen regex welcher mir href=test.htm findet, wobei er href="test.htm" nicht finden darf.


            könnte mir da jemand bitte helfen???

            Kommentar

            Lädt...
            X