regexp am abend

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

  • regexp am abend

    .. sind echt nicht mein ding. ich sitze jetzt seit einer geschlagenen halben stunde vor diesem stück code und find den fehler nicht:
    PHP-Code:
    $string '<b>Ganz wichtig</b>
               <u>unterstrichen</u>
               <i>und schräg</i>'
    ;
    preg_match_all ("/<(b|u|i)>(.*)<\/(1)>/i"$string$hitPREG_SET_ORDER);
    print_r($hit); 
    irgendwas stimmt mit dem rückbezug nicht. weiß einer, was los ist?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Re: regexp am abend

    Original geschrieben von Kropff
    .. sind echt nicht mein ding. ich sitze jetzt seit einer geschlagenen halben stunde vor diesem stück code und find den fehler nicht:
    PHP-Code:
    $string '<b>Ganz wichtig</b>
               <u>unterstrichen</u>
               <i>und schräg</i>'
    ;
    preg_match_all ("/<(b|u|i)>(.*)<\/(1)>/i"$string$hitPREG_SET_ORDER);
    print_r($hit); 
    irgendwas stimmt mit dem rückbezug nicht. weiß einer, was los ist?

    gruß
    peter
    \\1 anstatt nur 1
    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      hat das forum mal wieder verschluckt. so sieht es aus:
      Code:
      preg_match_all ("/<(b|u|i)>(.*)<\/(1)>/i", $string, $hit, PREG_SET_ORDER);
      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        aber so sollte es aussehen

        preg_match_all ("/<(b|u|i)>(.*)<\/\\1>/i", $string, $hit, PREG_SET_ORDER);

        Kommentar


        • #5
          ja, so sollte es aussehen. kann mir auch mal einer erklären, warum?

          danke
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Original geschrieben von Kropff
            kann mir auch mal einer erklären, warum?
            weil das die korrekte syntax von back references ist?
            bei single quotes benötigst du übrigens nur einen backslash.

            ps: kannst du mir mal erklären, warum man in php immer ein $ vor den variablennamen schreiben muss?

            Kommentar


            • #7
              weil das die korrekte syntax von back references ist?
              hach, ja, dann ist unser forum nicht der einzige ort im internet, wo backslashes verschluckt werden. habe zig tuts zu backreferences gefunden, aber das mit dem \ stand nirgends. man sollt sich wirklich mal die offiziellen dokus zu gemüte führen und nicht auf andere verlassen.

              danke
              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                bei solchen konstukten versuche ich immer andere delimiter zu setzen um maskieren zu vermeiden.
                '#<(b|u|i)>(.*)</\1>#i'
                Slava
                bituniverse.com

                Kommentar


                • #9
                  OffTopic:
                  ach du lebts auch noch?

                  bei solchen konstukten versuche ich immer andere delimiter zu setzen um maskieren zu vermeiden.
                  es muss aber trotzdem ein \ gesetzt werden:
                  Code:
                  $string = '<b>Ganz wichtig</b>
                             <u>unterstrichen</u>
                             <i>und schräg</i>';
                  preg_match_all ('#<(b|u|i)>(.*)</(\1)>#i', $string, $hit, PREG_SET_ORDER);
                  print_r($hit);
                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar

                  Lädt...
                  X