簡體   English   中英

十進制的正則表達式模式匹配

[英]Regex pattern matching for decimal

我需要匹配一個模式進行驗證。 我想匹配一個十進制數,其中數字部分最多有 7 位數字,小數部分最多有 9 位數字。 有效的模式是:

1.8
1234567.123456789
.8
0.7
12.78

我嘗試使用“ ^[0-9]{7}.[0-9]{9}$ ”但它沒有按預期工作

大括號中指定的重復參數用於匹配前一個標記的精確匹配數。 您的正則表達式試圖匹配 7 位數字( {7} ),后跟 9 位數字( {9} )。 您還使用點通配符來匹配小數點,因為您打算匹配文字字符點而不是任何字符,所以您應該使用斜杠 ( \\. ) 進行轉義。

從您的示例來看,您似乎想要匹配小數點前的 0 到 7 位數字,然后匹配小數點后的 1 到 9 位數字。 一個合適的正則表達式是:

^[0-9]{0,7}\.[0-9]{1,9}$

請注意,我也在使用重復,但我提供了兩個參數。 第一個參數是前一個標記的最小匹配數,第二個參數是最大值。 通過這種方式,我們可以非常明確地說明我們期望的確切重復次數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM