2012-03-07 75 views
1

我目前正在嘗試創建代碼來檢查內容是否爲數字。我發現這個整齊的匹配命令可以處理正則表達式代碼,但我是一個開墾者,所以如果你能解釋我做錯了什麼,那將是非常棒的。Android正則表達式不會像我以爲會這樣

我試圖讓E作爲指數,並且它可以輸入.1以及0.1。很顯然,我不希望它有可能進入一個以上的標點符號和一個E.

這是我的代碼:

if (blabla.getText().toString().matches("((-|\\+)?([0-9]|[0-9].|.[0-9])+([0-9]+E)?([0-9]+)?)+")) { 

目前,這個代碼可以讓你只需要輸入的東西像E2,儘管對我來說它看起來應該不會因爲前面的([0-9] | [0-9]。。。[。[0-9])+)而返回真實。

+0

你看到你不期望的結果是什麼? – 2012-03-07 12:04:38

+0

我期待E2不匹配表達式 – user1254588 2012-03-07 12:15:00

回答

2

你必須逃離時期:

if (blabla.getText().toString().matches("((-|\\+)?([0-9]|[0-9]\.|\.[0-9])+([0-9]+E)?([0-9]+)?)+"); 

如果沒能逃過,一期是指「除換行符任何字符」。

+0

的內容非常感謝!這就是問題 – user1254588 2012-03-07 12:30:50

+0

@ user1254588因此接受這個答案(左邊的綠色符號) – bluish 2012-03-07 15:38:13

相關問題