2016-10-19 7 views
1

Ich muss ein Muster in einer Java-Zeichenfolge suchen und ersetzen für eine andere Zeichenfolge.Ersetzen Regex Muster

Ich habe zwei Arten von Strings

1- Lorem ipsum dolor sit amet, es. Integer pos laciniA. 2. Lorem ipsum dolorelit. Curabitur pretium maL.

Was ich tun muss, ist ein "." die keine Zahl davor haben und durch ";" ersetzen

Ich habe die Regex wie str.replaceAll ('\.', '\\;');

Das Problem mit diesem Muster ist, dass, wenn es die Zeichenfolge "2." es ändert sich um "2";

Eine andere Lösung ist str.replaceAll ('[a-zAz] \.', '\\;'); aber es ersetzt den letzten Buchstaben vor ".".

Jemand kann mir helfen?

+0

Wollen Sie damit sagen Sie benötigen; (https: // regex101 [ '' str.replaceAll ("" "(<\\ d) \\?!".)] .com/r/xbyV8m/1)? –

Antwort

1

Was ich tun muss, ist ein "." die keine Zahl davor haben und durch ";" ersetzen

Sie können eine negative Lookbehind nutzen:

String result = str.replaceAll("(?<!\\d)\\.", ";"); 

Siehe regex demo

Einzelheiten:

  • (?<!\d) - nicht das Spiel, wenn es eine Ziffer vor dem Strom Standort
  • \. - passend eine wörtliche .