Java Regular Expression从String中删除除数字之外的所有内容
我有两个字符串string1 = 44.365 Online order
和string2 = 0 Request Delivery
。 现在我想对这些字符串应用一个正则表达式来过滤掉除数字之外的所有字符串,这样我就得到像string1 = 44365
和string2 = 0
这样的整数。
我怎么能做到这一点?
你可以利用^
。 它会考虑到你所面临的一切。
所以,如果你有[^y]
它会过滤除y之外的所有东西。 在你的情况下,你会做类似的事情
String value = string.replaceAll("[^0-9]","");
其中string是一个包含实际文本的变量!
String clean1 = string1.replaceAll("[^0-9]", "");
要么
String clean2 = string2.replaceAll("[^\\d]", "");
其中\d
是[0-9]
字符类的快捷方式,或
String clean3 = string1.replaceAll("\\D", "");
其中\D
是对\d
类的否定(表示[^0-9]
)
string1 = string1.replaceAll("[^0-9]", ""); string2 = string2.replaceAll("[^0-9]", "");
这是Google Guava #CharMatcher Way。
String alphanumeric = "12ABC34def"; String digits = CharMatcher.JAVA_DIGIT.retainFrom(alphanumeric); // 1234 String letters = CharMatcher.JAVA_LETTER.retainFrom(alphanumeric); // ABCdef
如果您只关心匹配ASCII数字,请使用
String digits = CharMatcher.inRange('0', '9').retainFrom(alphanumeric); // 1234
如果您只想匹配拉丁字母的字母,请使用
String letters = CharMatcher.inRange('a', 'z') .or(inRange('A', 'Z')).retainFrom(alphanumeric); // ABCdef
- Amazon SES自定义标头List-Unsubscribe无效
- 为什么MyClass.class存在于java和MyField.field中不存在?
- 获得应用程序正常运行
- Arrays.asList(…).contains(…)如何工作?
- 获取exception-java.lang.IllegalStateException:已为此响应调用了getOutputStream()
- JSF错误 – IllegalStateException:PWC3999:在提交响应后无法创建会话
- Eclipse插件 – 在Eclipse中打开编辑器时的通知
- 找到所有哈密顿循环
- 使用Java lambda而不是’if else’