正則表示式 大於等於0
System.out.println("大於0的正整數:"+"0.001".matches("^([1-9]\\d*(\\.[0-9]*[1-9])?)|(0\\.[0-9]*[1-9])|0$"));
正則表示式
最簡單易懂的正則表示式只需要三步
第一步:+ * ? . () [] | \ {}
第二步:^ $
第三步:\d \w
(不明白什麼意思的看最下邊的註解)
學會三步以後: 那麼你就掌握了 正則表示式的 電話號碼的正則表示式 郵箱的正則表示式 判斷字串大於等於0的正則表示式
例如:
問題: 判斷字串大於等於0的字串 ?
分析: 可能出現0.001的 可能出現 1的 這是最典型條件
分析1: 如果先判斷大於等於1的 那麼 第一位一定是1-9 正則寫法: [1-9]
分析2: 如果第二位只要是數字就可以,可以有0到多位 正則寫法: \d*
分析3: 如果有小數點的話,小數點後面可以跟多位或至少一位的數 那麼 正則寫法: .[0-9]*[1-9]
分析4: 如果是小於1 且大於0的數,就是第一位是0,第二位是 . 第三位就跟分析3 一樣就可以了 正則寫法: 0.[0-9]*[1-9]
分析5: 現在得出 大於等於1的正則表示式: [1-9]\\d*(\\.[0-9]*[1-9])? 大於等於0小於1的正則表示式: 0\\.[0-9]*[1-9]
最終結果 大於0的整數但是不等於0: ^([1-9]\\d*(\\.[0-9]*[1-9])?)|(0\\.[0-9]*[1-9])$
myeclipse 執行 : System.out.println("大於0的正整數除0外:"+"0".matches("^([1-9]\\d*(\\.[0-9]*[1-9])?)|(0\\.[0-9]*[1-9])$"));
(不明白什麼意思的看最下邊的註解)
+ 表示次數中的一次到多次(非洲)
* 表示次數中的0次到多次(中國)
?表示次數中的0次到1次(金星)
. 表示可做小數點使用
()表示子表示式
[] 表示取值範圍 例如:[1-9] 這個位置只能輸入1-9的數字
| 表示或者
\ 表示轉義字元
{} 表示次數 例如: z{1,2} 這個位置最少輸入1個z 最多輸入2個z
^ 表示開始
$ 表示結束
\d 表示只能輸入數字
\w 表示只能輸入任意單詞字元[A-Za-z0-9_]*/