簡體   English   中英

Java Regular Expression從String中刪除除數字之外的所有內容

[英]Java Regular Expression removing everything but numbers from String

我有兩個字符串string1 = 44.365 Online orderstring2 = 0 Request Delivery 現在我想將一個正則表達式應用於這些字符串,這些字符串過濾掉除數字之外的所有內容,因此我得到了像string1 = 44365string2 = 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM