2016-10-19 269 views
1

我需要在Java字符串中找到一個模式並替換爲另一個字符串。替換正則表達式

我有兩種字符串

1 Lorem存有悲坐不住阿梅特,它。整數pos laciniA。 2. Lorem ipsum dolorelit。 Curabitur pretium maL。

我需要做的是找到一個「。」在它之前沒有數字並以「;」代替

我找到了像str.replaceAll('\。','\\;')這樣的正則表達式。

這個模式的問題是,當它找到字符串「2」。它改變「2」。

另一個解決方案是str.replaceAll('[a-zAz] \','\\;');但它取代了「。」之前的最後一個字母。

有人可以幫助我嗎?

+0

你的意思是,你需要;(https://開頭regex101 [''str.replaceAll( 「」 「(<\\ d)\\?!」)的.com/R/xbyV8m/1)? –

回答

1

我需要做的是找到一個「。」在它之前沒有數字並以「;」代替

您可以利用負回顧後:

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

regex demo

詳細

  • (?<!\d) - 失敗的比賽,如果有當前前一個數字位置
  • \. - 相匹配的文字.