[REGEX] alle leerzeichen nur nicht in eingenen tags

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

  • [REGEX] alle leerzeichen nur nicht in eingenen tags

    hallo,

    ich probiere jetzt schon eine ganze weile im regex coach alle leerzeichen zu finden die nicht in meinen tags vorkommen:

    zb:
    habe ich für ein news script eigene tags definiert a la:
    PHP-Code:
    [IMG|src|beschreibenung mit leerzeichen|breite|höhe
    die dann entsprechend umgewandelt werden.

    jetzt wollte ich den text mit preg_split nach einer gewissen wortzahl abbrechen. wenn ich jedoch nur nach leerzeichen suchen lasse, kommt es vor dass es mir die tags zerhackt. also habe ich versucht einen regex zu schreiben, der nur leerzeichen findet die außerhalb meiner tags sind:

    [ (^\[^\])]
    leider funktioniert er nicht. was stimmt nicht?

    vielen dank

    mgf
    dan

  • #2
    Ich fürchte da kommst du um preg_replace mit dem Modifikator e nicht rum.
    Du müsstest also alle Leerzeichen mit einem eindeutigen Trenner versehen, die ausserhalb deiner Tags liegen. Und das geht afaik nur mit preg_replace, da du vor der Ersetzung prüfen musst, ob das Leerzeichen die Bedingung zum Ersetzen erfüllt.
    Und erst danach kannst du preg_split() drüberlassen.
    Schau dir mal diesen Link an. Der hat mir beim Erstellen meiner Suche auf der Seite sehr geholfen, da Suchtreffer, die sich zwischen < und > befinden nicht gehighlighted werden dürfen
    http://www.php-center.de/faq/faq-regexp.html#regexp-11

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      du könntenst dich mal über look ahead informieren - sollte in diesem fall sinnvoll sein
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        ( )(?![^[]+\])
        funktioniert super! vielen dank für den tipp...

        Kommentar

        Lädt...
        X