regExp gesucht

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

  • regExp gesucht

    Hallo, ich such auch mal wieder was

    ich komme mit einem Ausdruck nicht weiter, undzwar

    Beispiel:

    String: "bla1 bla2 +bla3[bla4] +bla5]bla6[ bla7"

    soll er mir alle vorkommen eines Wortes ab "+" inclusive den "[...]" aber die Klammer nur, wenn vor der schließenden
    Klammer auch eine öffnende kommt, sonst ohne Klammer
    Also im obigen Beispiel

    +bla3[bla4] und +bla5

    ich habe derzeit
    "#(\+\w*([\[\w\+\]]*){0,1})#i"

    aber das bringt mir

    +bla3[bla4] und +bla5]bla6[
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    teste mal das:
    PHP-Code:
    <?php
        $pattern 
    "#((\\+\\w*\\[\\w*\\])|(\\+\\w*[\\]]))#i";
        
    $code "<font color=\"red\">\\0</font>";
        
    $string "bla1 bla2 +bla3[bla4] bla6[ bla7+bla5]";
        
    $fstring preg_replace($pattern,$code,$string);
        echo 
    $fstring;
    ?>
    das match bei mir so:
    bla1 bla2 [COLOR=red]+bla3[bla4][/COLOR] bla6[ bla7[COLOR=red]+bla5][/COLOR]

    warte nochmal, ich muß erst die backslashes anpassen

    gruss

    Kommentar


    • #3
      so, ich glaub, ich hab jetzt alle...

      gruss

      Kommentar


      • #4
        Sorry, hab schon wieder die Anforderungen erweitert, aber dein
        Ansatz hat mich weiter gebracht.
        Bei dir war noch da ] bei bla5 zuviel
        Code:
        $replace="\\1<font color=red>\\2</font>";
        $text='bla1 bla2 $bla3[bla4] $bla5]bla6[ $bla7[$bla8] $blubber["hallo"] bla9';
        $regExp="#([^\\\\])(\\$\w*(\[\\\${0,2}[\"'\w]*\]){0,2})#i";
        echo preg_replace($regExp,$replace,$text);
        ergibt
        Code:
        bla1 bla2 [color=red]$bla3[bla4][/color] [color=red]$bla5[/color]]bla6[ [color=red]$bla7[$bla8][/color] [color=red]$blubber["hallo"][/color] bla9
        PS: der Code Tag zerhaut die \ nicht
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          oh, sorry, das mit dem ] bei bla5 hab ich übersehen

          aber solange es trotzdem ein bisschen geholfen hat, bin ich ja schon zufrieden!

          was haste denn mit dem Dingens vor ??

          gruss

          Kommentar


          • #6
            auf meinem Board habe ich einen selbstgebauten PHP Code Highlighter,
            bei welchem mich genau dieses (von dir übersehene) ] genervt hat.
            Ich hatte es einfach nicht hinbekommen.

            Beispiel gibs hier: Beispiel
            beim letzten Beitrag tritt genau dieser Fehler auf, der aber heute abend gefixt ist
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar

            Lädt...
            X