初学者。如何使用正则表达式替换仅包含非数字(包括负数)子字符串的字符串?
示例:
String src = "Copper=-32"
Regex output should be "-32"
我一直在尝试使用:
src = src.replaceAll("\\D+",""); <----- used various regex patterns, which don't work.
谢谢!
答案 0 :(得分:1)
Google是你的朋友。当我在&#34;正则表达式中搜索数字&#34;你会得到一个很好的解释答案:Matching Floating Point Numbers with a Regular Expression。他们的最终答案是
[-+]?[0-9]*\.?[0-9]+.
但是阅读这篇文章非常值得看看陷阱。
答案 1 :(得分:0)
由于您只想替换整数值,请尝试
String src = "Copper=-32";
System.out.println(src.replaceAll("\\d+",""));
表示重要的是小写d。
如果您想删除阴性/阳性体征,请使用:
String src = "Copper=-32";
System.out.println(src.replaceAll("[-+]?\\d+",""));
[]
允许您指定要在该位置匹配的字符列表。所以我们基本上说匹配一个+或 - 后面跟着很多数字。
修改已添加?在[-+]
之后使其成为可选项。感谢user949300指出它。