Regex mit Java String.replaceAll

7

Ich möchte einen Java-String-Wert wie folgt ersetzen. unter Code funktioniert nicht.

%Vor%

Was ist der einfachste Weg, um das obige zu ersetzen?

    
user2072797 31.05.2013, 21:12
quelle

3 Antworten

11

Wenn es sich um eine Funktion handelt, die Sie ständig verwenden, liegt ein Problem vor. Jeder reguläre Ausdruck wird für jeden Aufruf erneut kompiliert. Es ist am besten, sie als Konstanten zu erstellen. Du könntest so etwas haben.

%Vor%     
Paul Vargas 31.05.2013 21:53
quelle
6
%Vor%

sollte sein:

%Vor%

da String class unveränderlich ist und seinen internen Status nicht ändert, d. h. replaceAll() gibt eine neue Instanz zurück, die sich von cleanInst unterscheidet.

    
Eng.Fouad 31.05.2013 21:14
quelle
2

Sie sollten ein grundlegendes Tutorial für reguläre Ausdrücke lesen.

Bis dahin könntest du Folgendes tun:

%Vor%

Sie könnten wahrscheinlich alle diese Ersetzungsoperationen verketten (aber ich kenne die richtige Java-Syntax dafür nicht).

Über die Wortgrenzen : \b macht normalerweise nur direkt vor oder nach einem alphanumerischen Zeichen Sinn.

Zum Beispiel stimmt \b/n\b nur dann mit /n überein, wenn direkt ein alphanumerisches Zeichen gefolgt von einem nicht-alphanumerischen Zeichen vorangestellt wird, sodass es "a/n!" , aber nicht "foo /n bar" entspricht.

    
Tim Pietzcker 31.05.2013 21:22
quelle

Tags und Links