2016-07-06 78 views
1

如果包圍/前/後跟非數字,我想用空格替換點,如果包圍/前/後跟數字,則不執行任何操作。使用點構建正則表達式

例如,String「我跑了4.4公里,總共2次」。將成爲「我跑了4.4公里總共2次」

我需要建立這個正則表達式的幫助。我正在使用這個:

string.replaceAll("[D].", "[D]") 

和,只有很多點。

回答

1

您可以使用向前看符號和lookbehinds像

System.out.println(Str.replaceAll("(?<=\\D)\\.(?=\\D|$)", "")); 

正則表達式說明

(?<=\\D) #Lookbehind to match non-digit 
\\. #Match . literally 
(?=\\D|$) #Lookahead to match non-digit or end of string