Here是一個很好的簡短的例子來過濾字符串爲十進制:過濾字符串爲十進制數
String str = "a12.334tyz.78x";
str = str.replaceAll("[^\\d.]", "");
,這使得12.334.78
但如何篩選這個第二小數部分?我有一個字符串valued 12345.67 doll.
(注意最後一點)。所以我只需要12345.67
對不起,不僅僅是評論Óscar洛佩斯的答案,因爲沒有足夠的聲譽。
Here是一個很好的簡短的例子來過濾字符串爲十進制:過濾字符串爲十進制數
String str = "a12.334tyz.78x";
str = str.replaceAll("[^\\d.]", "");
,這使得12.334.78
但如何篩選這個第二小數部分?我有一個字符串valued 12345.67 doll.
(注意最後一點)。所以我只需要12345.67
對不起,不僅僅是評論Óscar洛佩斯的答案,因爲沒有足夠的聲譽。
我看着它,但不能確定。 Android正則表達式(如Java)可以使用斷言,這意味着從最後匹配位置的末尾開始。
你的問題不能用一個正則表達式解決,但它可以用
兩個正則表達式完成。
真的很簡單。
兩者都用於替換所有情況。
第一個清除任何你不想要的東西。
使用你的例子。
查找:"[^\\d.]+"
替換:""
二是:
查找:"(?:(?!\\A)\\G|(\\.))([^.]*)\\."
替換:"$1$2"
最後的正則表達式刪除所有點的第一個(但不後第一個)
這是這個正則表達式的細分:
(?:
(?! \A) # Not at BOS
\G # Start at end of last match position
| # or,
(\.) # (1), One time, The first Dot in the string
)
([^.]*) # (2), Optional any chars
\. # Until we find the next extra Dot to remove
輸入:
a12.334tyz.78x
輸出:
12.33478
兩個數字可以從'12.334.78'中提取。 12.344和.78是你需要的嗎? – sln
sln,no。一個字符串可以是任何類型的,例如給定的字符串。事情是我必須得到一個點。 – kolyaseg