kölir: ähnlich wie parserklasse blos kleiner

Hi,

möchte eine Usereingbe auf 2 mögliche html-Tags überprüfen
<b></b>
und
<u></u>

Nun möchte ich die richtige Verschachtelung prüfen und nur dann umwndeln oder besser nur die umwandeln, sodass die Schachtelung noch stimmt.

Wie mache ich das?
Muss ja so bissle wie die parserklasse für den bbcod gehen...bloß halt viel kkleiner...

gruß

  1. Also mein Denkanstatz war so:

    <b> mit dazugehörigem </b> immer dann umwandeln, wenn sich innerhalb kein öfnendes <u> ohne schließendes befindet, wobei sich schließendes und öffnendes abwechseln müssen, doch wie mach ich das?

    Mit einen regex?

    1. Hallo,

      Das ist nicht ganz einfach.

      Entweder machst Du es rekursiv (eleganter aber kann bei seehr langen Texten in die Hose gehen) oder Buchstabe für Buchstabe.

      Eine Hilfe ist erstmal: wenn ein schließendes Tag auftaucht, muß das letzte Tag davor entweder ein anderes schließendes Tag sein, oder das zugehörige öffnende Tag. Sonst ist es falsch verschachtelt.

      Das kannst Du für eine Rekursion nutzen. Du gehst von hinten nach vorne. immer wenn ein schließendes Tag auftaucht, beginnt ein Rekursionsdurchlauf. Du liest dann weiter die Buchstaben bis zum nächsten Tag. ist es ein schließender, rufst Du aus der gerade laufenden Rekursionsschleife die nächste Rekursion auf. Ist es ein öffnender, checkst Du, ob er zum aktuellen schließenden passt.
      Wenn ja, ok, dann springst Du zurück in das Hauptprogramm, bzw. die vorhergehende Schleife, Wenn nein, dann ist es eine fehlerhafte Verschachtelung.

      Gruß, Nils

      p.s. Das ganze geht natürlich auch von vorne nach hinten

      1. Hi,

        danke für den Ansatz aber wie macht man dieses von hintn einlesen praktisch?
         Habe ienen String noch nie so durchgesucht...

        gruß