[英]Java Regular Expression removing everything but numbers from 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.