regex soll [B][I]..[/I][/B] matchen

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

  • regex soll [B][I]..[/I][/B] matchen

    hi,

    ein regex soll "[ B][ I] irgend ein text... [/ I][/ B]" , bzw "[ B][ U]...[/U][/B]" oder "[ U][ B]...[/ B][/ U]" matchen (ohne die leerzeichen bei den tags).

    die reihenfolge von b,i,u soll egal sein. auch [ I][ B][ U] ... [/ U][ /B][ /I] soll gehen.

    ich bin leider noch nich so fit in der erstellung von regex. nach vielen versuchen habe ich folgenden regex erstellt :

    /((\[(I|B|U)\]){2,}?)(.*)(\[\/(I|B|U)\]){2,}?/iUms


    der regex passt aber hinten und vorne nicht. er findet im text zwar [ B] [ I] ... [/ I][/ B] , aber er matcht auch sachen wie :

    [ B][ I] text.. [/ B][/ I]
    oder :

    [ B][ I] text.. [/ I] text... [/ B]


    ich könnte zwar nach jedem tag (also [ B][/ B] , [I][/ I] ... ) suchen und diese ersetzen, jedoch hab ich dann eine unschöne aufreihung von <span>'s im quelltext, falls man [ B][ I] eingibt. (<span class="B"><span class="I">...text...</span></span>

    am ende hätte ich es gerne so, dass [ B][ I] zu <span class="BI">..</span> und [ I][ U] zu <span class="IU">...</span> usw. gewandelt wird.

    ich bin mir auch nicht sicher, ob das überhaupt in einem regex möglich ist.


    über hilfe und/oder über einen anderen lösungweg würde ich mich freuen.

    martin
    Zuletzt geändert von maddin`moo; 31.05.2007, 17:56.

  • #2
    das rad wurde schon erfunden: http://www.christian-seiler.de/projekte/php/bbcode/
    guck es dort ab, wenn du willst.

    Kommentar

    Lädt...
    X