我有這種形式[3 4.0:ad}
一些字符串,我需要替換所有的空格和數字,但.
(即需要解析解正確浮動)正則表達式路口排除字符將無法正常工作
,所以我有寫這個正則表達式
\D*!.|\s+
但不工作,我不明白我已經使用
\D*
選擇非數字字符
!.
排除.
從選擇
|\s+
選擇所有空白
如果我刪除!.
工作這麼東西在我使用的是錯誤的路交叉口。
有什麼建議嗎?
我有這種形式[3 4.0:ad}
一些字符串,我需要替換所有的空格和數字,但.
(即需要解析解正確浮動)正則表達式路口排除字符將無法正常工作
,所以我有寫這個正則表達式
\D*!.|\s+
但不工作,我不明白我已經使用
\D*
選擇非數字字符
!.
排除.
從選擇
|\s+
選擇所有空白
如果我刪除!.
工作這麼東西在我使用的是錯誤的路交叉口。
有什麼建議嗎?
您可以使用一個否定的字符類是這樣的:
str = str.replaceAll("[^\\d.]+", "");
[^\\d.]
將匹配不是數字,不是一個DOT任何字符。
順便說一句\D
還包括空格,這樣既不必在一個正則表達式來提供。
,因爲它說here,Java類路口
是東西在class1的是在Class2中的子集。
相當簡單的概念,但使用可能會很棘手。最終,編譯器會將其解析爲單個類,因此如果結果短而明顯,那麼讀取效果會更好。
例子:
不是數字\D
不點[^.]
要匹配的空白,這是不位,因此沒有必要擔心
有關部分。
因此交集[\D&&[^.]]
它讀取作爲未位數和不光點顯示。
翻譯是[^\d.]
這就是編譯器解決它的問題。
當您想要排除的字符範圍內有很多空洞時,真正的交集功能就會出現在
之內。
例如,所有的信件除了元音[a-z&&[^aeiou]]
只是好奇,你在哪裏得到的想法'!'是特殊的?這是來自另一個正則表達式的語法,還是因爲Java語言中的否定或不等號運算符? – erickson