RegEx um zu escapen?

Volvagia

Top Contributor
Ich habe Steuerzeichen und Nutzerdaten. Da die Nutzerdaten jede beliebige Form annehmen können, kamen mir 2 grundlegende Ideen. Entweder, ich benutze eine so komplizierte Zeichenfolge von Sonderzeichen, das die Chance für eine Kollision gleich 0 ist, oder ich escape die Sonderzeichen und das Escapezeichen in den Nutzerdaten.
Leider kenne ich mit mit RegEx und den Generatoren gar nicht aus. Ich könnte einfach mir replace rangehen, aber das wäre ja leistungsmäßig eine schlechte Idee. Außerdem muss ich später bei Befehle, bei denen man RegEx benutzen kann angeben, dass er es nur dort machen soll, wo das Zeichen nicht Escaped ist.

Kennt dafür zufällig jemand eine (möglichst simple) Lösung? :)
 

fastjack

Top Contributor
Zum Escapen nehme ich gewöhnlich die StringEscapeUtils von Apache-Commons, die basieren aber auch letztendlich auf replace.
 

Volvagia

Top Contributor
Danke. Ich habe mich durch einige Tutorials gewühlt, um das zu schreiben, dass er nur bei nicht-escaped-Zeichen reagieren soll. Als Beispiel einmal, dass er nur bei ";", nicht aber bei "\;" spliten soll.
Eigendlich wird richtig gesplitet, aber das Zeichen vor dem unescaped ; verschwindet.

Java:
String text = "Hallo;wie\\;gehts?";
String regex = "[^\\\\;][;]";
		
Pattern p = Pattern.compile(regex);
String[] array = p.split(text);
		
for(String part:array)
{
	System.out.println("Part: " + part);
}

Code:
Part: Hall
Part: wie\;gehts?

Kann mir bitte jemand sagen, was ich falsch mache? :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Regex-Regel um fehlende Schlusszeichen zu finden Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
C Regex Problem Softwareentwicklung 1
H [Java]Regex Hilfe Softwareentwicklung 3
TheJavaKid RegEx Problem Softwareentwicklung 2
P Nur ganze Worte ersetzen mit RegEx Softwareentwicklung 2
C Regex-Problem Softwareentwicklung 24
G RegEx Version number Softwareentwicklung 8
M Regex Ausnahmen/Bedingungen Softwareentwicklung 5
H [RegEx] Anführungszeichen finden Softwareentwicklung 2
B Regex-Problem mit replace außerhalb des matching bereichs liegender Zeichenketten Softwareentwicklung 2
A Regex mit Negation Softwareentwicklung 2
ruutaiokwu regex, der mit nur html-comments, nicht aber javascript entfernt Softwareentwicklung 16
TiME-SPLiNTER Banales regEx-Problem Softwareentwicklung 2
B Regex, um Sätze zu erkennen Softwareentwicklung 3
A Verschachteln von REGEX Softwareentwicklung 4
D Regex zur auswertung von SQL Statements Softwareentwicklung 3
S Regex Frage Softwareentwicklung 4
S sonderzeichen mit regex abfragen Softwareentwicklung 2
N Wie testet ihr regex auf korrektheit? Softwareentwicklung 8
m@nu Problem mit einer RegEx Softwareentwicklung 4
S [RegEx] Dateigerecht geschriebene Namen parsen Softwareentwicklung 2

Ähnliche Java Themen

Neue Themen


Oben