初學者在這裏。如何使用正則表達式來替換隻有非數字(包括負數)子字符串的字符串?Java replaceAll()非數字和負數?
例子:
String src = "Copper=-32"
Regex output should be "-32"
我一直在嘗試使用:
src = src.replaceAll("\\D+",""); <----- used various regex patterns, which don't work.
謝謝!
初學者在這裏。如何使用正則表達式來替換隻有非數字(包括負數)子字符串的字符串?Java replaceAll()非數字和負數?
例子:
String src = "Copper=-32"
Regex output should be "-32"
我一直在嘗試使用:
src = src.replaceAll("\\D+",""); <----- used various regex patterns, which don't work.
謝謝!
Google是你的朋友。當我搜索「數字正則表達式」時,你會得到一個有很好解釋的答案:Matching Floating Point Numbers with a Regular Expression。他們的最終答案是
[-+]?[0-9]*\.?[0-9]+.
但它是值得閱讀文章,看到陷阱。
值得注意的是,如果需要多次替換,那麼值得重構java'Pattern'和'Matcher'對象。 – 2014-11-05 19:46:43
既然你只需要更換整數值,儘量
String src = "Copper=-32";
System.out.println(src.replaceAll("\\d+",""));
重要的是要表示的是小寫字母d。
如果你想刪除的正/負標誌然後使用:
String src = "Copper=-32";
System.out.println(src.replaceAll("[-+]?\\d+",""));
的[]
允許您指定要在那個位置上的字符匹配的列表。所以我們基本上是說匹配a +或 - 然後是許多數字。
編輯已添加?在[-+]
之後使其成爲可選項。感謝user949300指出它。
你應該放一個?在'[ - +]'之後使符號可選。 – user949300 2014-11-05 20:22:50
「不要工作」如何? – khelwood 2014-11-05 18:35:30
你只是期待整數,還是可以有小數,科學記數法等? – 2014-11-05 18:38:54
@Tim Pietzcker Only整數 – NTDF 2014-11-05 18:40:13