# RegEx Problem



## RawBit (10. Feb 2013)

Hallo,

also ich hab da folgendes Problem mit RegEx:

"Das ist _ein_ Test." => "Das ist ein <b>ein</b> Test."

Wenn zwischen _ und _ nichts steht (also __) sollen die beiden Unterstriche ausgegeben werden.

Das hab ich soweit schon zusammengebracht:

msg.replaceAll("\\_([^\\_](.*?))\\_", "<b>$1</b>");

Aber jetzt kommts:

Ein Text, der zwischen °> und <° steht soll davon NICHT betroffen sein. Der Inhalt zwischen °> und <° muss unbehandelt bleiben. also zB:

"Das ist _ein_ Test °>das ist _auch_ ein Test<°" => "Das ist <b>ein</b> Test °>das ist _auch_ ein Test<°"

Wie stellt man das an ?

Danke schonmal dafür


----------



## Timothy Truckle (10. Feb 2013)

Also Prinzipiell sind Reguläre Ausdrücke schlecht für's Parsen von XML im allgemeinen und HTML im Besonderen geeignet. Besser suchst Du Dir ein fraqmework, dass das für Dich tut. (jsoup Java HTML Parser, with best of DOM, CSS, and jquery Java HTML Parser @ Java - tutorials.de: Tutorial, Forum, Anleitung & Hilfe)

bye
TT


----------



## schlingel (10. Feb 2013)

Da geht's nicht um HTML parsen sondern darum, Markdown oder so etwas nach HTML zu kompillieren.

Nichtsdestotrotz: Eine reguläre Sprache ist da eine schlechte Wahl. Du willst Zustände abbilden. Das wird nichts werden mit Regex.

Einfacher ist es, wenn du dir da selbst einen Automaten schreibst oder dir eine fertige Lib für deine Markup-Sprache holst.


----------

