正規表示式 限定位數的正數

2021-10-08 17:25:58 字數 523 閱讀 8336

今天專案上碰到乙個正規表示式的需求,需要限定整數字數為不超過7位的正數,可能包含一位小數字或者只能是正數,正規表示式的寫法最重要的是思路的實現,在網上並沒有找到很好的解決辦法,首先是正數必須大於0,其次整數字也限定了7位,小數字如果有的話也只能一位,碰到這樣的正規表示式最好是拆解成三部分:

1、整數字為7位+小數字為1位的驗證 (^[0-9]\.([0-9])$)

2、整數為7位不包含小數字的非負數 (^[0-9]$)

3、大於0的正數 (^\d*[1-9]\d*$)

拆解後可以看到,3式需要和2式進行邏輯與,合併後再與1進行邏輯或運算,故可以推到出:

(?=^\d*[1-9]\d*$)(^[0-9]$)|(^[0-9]\.([0-9])$)
其中:「|」為邏輯或,而邏輯與可以寫成(?=a)(b),a和b分別為兩個正規表示式。

寫個性化的正規表示式需要有乙個較好的思路,如何拆解和組合很重要,不太建議採用邏輯非,實現起來不易,邏輯與和邏輯或是比較好的實現方式。

正規表示式限定輸入數字

正規表示式限定輸入數字 整數或者小數 0 9 0 9 只能輸入數字 0 9 只能輸入n位的數字 d 只能輸入至少n位的數字 d 只能輸入m n位的數字 d 只能輸入零和非零開頭的數字 0 1 9 0 9 只能輸入有兩位小數的正實數 0 9 0 9 只能輸入有1 3位小數的正實數 0 9 0 9 只能...

正規表示式定位符

once 這個模式包含乙個特殊的字元 表示該模式只匹配那些以once開頭的字串。例如該模式與字串 once upon a time 匹配,與 there once was a man from newyork 不匹配。正如如 符號表示開頭一樣,符號用來匹配那些以給定模式結尾的字串。bucket 這個...

正規表示式中的限定符

有時候不知道要匹配多少字元。為了能適應這種不確定性,正規表示式支援限定符的概念。這些限定符可以指定正規表示式的乙個給定元件必須要出現多少次才能滿足匹配。下表給出了各種限定符及其含義的說明 字元描述 匹配前面的子表示式零次或多次。例如,zo 能匹配 z 以及 zoo 等價於。匹配前面的子表示式一次或多...