RegEx-Frage: Ersetzen in UBB ausschließen

Daniel_L

Bekanntes Mitglied
Hallo, ich habe folgendes Problem mit RegEx, mal wieder. Ich möchte bestimmte Wörter (gespeichert in der Variable st, siehe unten) in einer HTML-Seite mit einem "Span"-Tag versehen, was wunderbar klappt. Das Ersetzen soll aber nur außerhalb von HTML-Tags durchgeführt werden. In Java sieht das so aus:

Java:
dummy = dummy.replaceAll("(?i)"+st+"(?![^<>]*>)", "<span "+cssclass+">$0</span>");

Nun möchte ich, dass diese Tags wahlweise in HTML-Seiten ersetzt werden (siehe oben), oder aber, wenn der "Quelltext" im UBB-Format vorliegt, das Ersetzen nicht innerhalb von UBB-Tags vorgenommen wird. Im Grunde müsste also das Erkennen von < und > durch [ und ] ersetzt werden. Aber: an welcher Stelle?

Ich hab folgendes probiert, in Abwandlung des Codes oben:
Java:
dummy = dummy.replaceAll("(?i)"+st+"(?![^\\[\\]]*>)", "<span "+cssclass+">$0</span>");

Klappt nicht mit UBB-Tags.

Mein gesamter Code sieht so aus:
Java:
if (!isUBB) {
  dummy = dummy.replaceAll("(?i)"+st+"(?![^<>]*>)", "<span "+cssclass+">$0</span>");
}
else {
  dummy = dummy.replaceAll("(?i)"+st+"(?![^\\[\\]]*>)", "<span "+cssclass+">$0</span>");
}

Das Ersetzen von Begriffen außerhalb von HTML-Tags funktioniert, das Ersetzen von Begriffen außerhalb von UBB-Tags funktioniert leider nicht, denn die Begriffe werden (mit dem obigen Code) auch innerhalb von UBB-Tags ersetzt.

Frage also: Wie lautet die RegEx-Formel für UBB-Tags, sprich das Ersetzen soll nicht innerhalb von [ und ] passieren?

Danke für eure Hilfe!
 
Zuletzt bearbeitet:

Daniel_L

Bekanntes Mitglied
Also, laut dieser Seite: RegEx: online regular expression testing
müsste es klappen.

Eingaben RegEx: (?i)hallo(?![^\[\]]*\])
Java-String: (?i)hallo(?![^\\[\\]]*\\])
Replacement: <span>hallo</span>
Test-String: dies ist ein [img hallo] hallo test

ergibt: dies ist ein [img hallo] <span>hallo</span> test

Warum klappt es "in echt" (also in meinem Programm) nicht? Hm...
 

Daniel_L

Bekanntes Mitglied
Ok, Denkfehler von mir. Die Angaben, die ich habe, sind nicht im img-UBB-Tags, sondern zwischen einem offenen und geschlossenem UBB-Tag. ^^

Lösung lautet (hoffentlich):

[Java]dummy = dummy.replaceAll("(?i)"+st+"(?![\\[img\\](.*?)\\[/img\\]])", "<span "+cssclass+">$0</span>");[/code]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Regex Frage (+ ersetzen) Allgemeine Java-Themen 18
H Frage regex greater than less than Allgemeine Java-Themen 7
F Frage zu Regex möglich Allgemeine Java-Themen 4
Loyd Noch ne Regex-Frage: Verschachtelte Ausdrücke Allgemeine Java-Themen 4
R Java Regex Frage Allgemeine Java-Themen 17
M RegEx-Frage Allgemeine Java-Themen 2
D Frage zu nicht funkionierendem RegEx .* Allgemeine Java-Themen 9
GilbertGrape mal wieder ne Regex-Frage Allgemeine Java-Themen 2
A RegEx frage Allgemeine Java-Themen 2
L Frage zu java.util.regex und Einlesen einer Datei Allgemeine Java-Themen 2
M Regex Frage Allgemeine Java-Themen 12
F Frage zu einem RegEx Allgemeine Java-Themen 3
M Regex-Frage Allgemeine Java-Themen 4
M Mal ne Regex Frage Allgemeine Java-Themen 3
N Regex schlägt nicht an Allgemeine Java-Themen 10
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
T regex case insensitive trimmed Allgemeine Java-Themen 6
S Zeichen | in regex Allgemeine Java-Themen 8
X Regex mit mehreren Bedingungen machen Allgemeine Java-Themen 5
N Hilfe bei RegEx benötigt Allgemeine Java-Themen 3
C Java17 und Regex Allgemeine Java-Themen 13
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N E-Mail Validator (ohne Regex!) Allgemeine Java-Themen 7
OnDemand Regex von bis Allgemeine Java-Themen 6
White_Fox Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
G Regex Allgemeine Java-Themen 2
L regex ganzer string? Allgemeine Java-Themen 2
MiMa Geldbetrag mit regex ermitteln. Allgemeine Java-Themen 14
W RegEx Stringliteral finden - Jflex Allgemeine Java-Themen 5
D Regex Probleme Allgemeine Java-Themen 2
Kirby.exe Regex charakter ignorieren Allgemeine Java-Themen 12
S Java SAT (Haltbarkeitsproblem) mit Regex Allgemeine Java-Themen 6
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
M Bitte Hilfe mit REGEX (Negieren) Allgemeine Java-Themen 4
J Compilerfehler bis in java.util.regex.Pattern... Allgemeine Java-Themen 2
C PDFBox: Nach RegEx ganze Zeile Allgemeine Java-Themen 4
S Regex mit UND-Verknüpfung Allgemeine Java-Themen 1
P RegEx für Zeiten Allgemeine Java-Themen 7
D Regex: Komplettes Wort bekommen Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
P RegEx Allgemeine Java-Themen 3
W String Parsen und auf eigenes Muster anwenden (kein Regex) Allgemeine Java-Themen 11
Y regex | n-faches Vorkommen oder gar keins Allgemeine Java-Themen 6
turmaline Regex gegen Regex prüfen Allgemeine Java-Themen 4
HarleyDavidson Regex - Optimierung Allgemeine Java-Themen 4
M Regex für Zahleneingabe in JavaFX Textfield Allgemeine Java-Themen 18
T Best Practice Wortregeln RegEx Allgemeine Java-Themen 11
A ALTER TABLE mit Hilfe von RegEx zerlegen, splitten Allgemeine Java-Themen 5
H Interpreter-Fehler Regex kompiliert nicht Allgemeine Java-Themen 5
M RegEx alle Matches ausgeben Allgemeine Java-Themen 5
Iron Monkey Mit Regex nach Beträge suchen Allgemeine Java-Themen 4
T REGEX Erklaerung Allgemeine Java-Themen 14
T Nur innerhalb des regex-Match ersetzen Allgemeine Java-Themen 9
H Pic Download / Regex Problem Allgemeine Java-Themen 7
M Regex... mal wieder Allgemeine Java-Themen 3
H RegEx - Ersetze alles bis Leerzeichen Allgemeine Java-Themen 5
S regex verbrät CPU Allgemeine Java-Themen 6
V Regex Bereichs Filter Allgemeine Java-Themen 4
127.0.0.1 RegEx _ und 0-9 Allgemeine Java-Themen 45
S Entfernen von allen Nicht-Buchstaben chars aus einem String ohne Regex..? Allgemeine Java-Themen 10
P Java String Regex Allgemeine Java-Themen 2
AyKay Regex XPath Allgemeine Java-Themen 4
C Regex (Case insensitive und Umlaute) Allgemeine Java-Themen 4
D Regex Raute erkennen Allgemeine Java-Themen 2
nrg Zweistelligen Zahlenbereich mit RegEx Allgemeine Java-Themen 8
GilbertGrape Regex-Problem Allgemeine Java-Themen 2
W Denkblockade RegEx Allgemeine Java-Themen 2
S eigene regEx schreiben Allgemeine Java-Themen 4
C Regex expandieren Allgemeine Java-Themen 6
C Regex Überschniedung von Ausdrücken Allgemeine Java-Themen 16
reibi RegEX - Teilstring Allgemeine Java-Themen 6
R Java-RegEx terminiert nicht Allgemeine Java-Themen 3
M Regex: Ich stehe auf dem Schlauch Allgemeine Java-Themen 2
V Kleines Regex-Problem Allgemeine Java-Themen 3
B Regex "Problem" Allgemeine Java-Themen 4
B RegEx: (Um-)formulieren eines Pattern zur Identifizierung komplexer URLs Allgemeine Java-Themen 7
P RegEx mit HTML Parser für Java möglich? Allgemeine Java-Themen 10
J Regex: Fertige URLS aus Javascript Allgemeine Java-Themen 3
N Java regex Allgemeine Java-Themen 5
K Regex JSON Allgemeine Java-Themen 3
J RegEx Ausdruck Allgemeine Java-Themen 2
J Regex: URLS aus CSS Allgemeine Java-Themen 2
G RegEx- Ausdruck Allgemeine Java-Themen 4
G RegEx kein Unterstrich Allgemeine Java-Themen 2
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
C Regex: Zahl ohne führende Null Allgemeine Java-Themen 13
W RegEx Zeile parsen Medium Allgemeine Java-Themen 8
X Java String Regex - Sonderzeichen Filtern Allgemeine Java-Themen 5
S Dateiname mit Regex parsen Allgemeine Java-Themen 3
M Große Datei mit Regex durchsuchen Allgemeine Java-Themen 4
S regex für einen Link Allgemeine Java-Themen 3
E Regex alles nach ? löschen Allgemeine Java-Themen 4
R Regex Tokenizer Allgemeine Java-Themen 11
E Regex HTML Tag und Inhalt löschen Allgemeine Java-Themen 4
H RegEX und eMail Allgemeine Java-Themen 4
L-ectron-X Regex zum Entfernen von mehrzeiligen Kommentaren Allgemeine Java-Themen 2
martin82 Regex - JTable - Filter Allgemeine Java-Themen 10
nrg Kleine Hilfe mit RegEx Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben