正則筆記:括號後面的問號

正則筆記:括號後面的問號

問題

羣裏有小夥伴發了一道正則的題目。
html

解決

解法以下:測試

^([1-9][0-9]*)+(\.[0-9]{1,2})$

追問

問題來了,$ 前面要不要加問號呢?
改成以下:code

^([1-9][0-9]*)+(\.[0-9]{1,2})?$

能夠看出這個正則兼容了整數。htm

從最終用戶的角度來說,加了 問號(?)更加友好。blog

解決過程的花絮

  1. 開始用了 ^([1-9]|[0-9]{0,})(.[0-9]{1,2})?$ 點(.)沒有轉義,變成了 Any Char,測試 0w1 也經過了,正則失敗。
    get

  2. 改成 ^([1-9]|[0-9]{0,})(\.[0-9]{1,2})?$,看起來是沒問題,可是測試 00.11 時經過了,這個正則不對。
    class

  3. 最終改成 ^([1-9][0-9]*)+(\.[0-9]{1,2})$,再友好點就加上問號 ^([1-9][0-9]*)+(\.[0-9]{1,2})?$
    im

原文地址: http://www.javashuo.com/article/p-rzdfrpiv-bm.htmlimg

相關文章
相關標籤/搜索