簡體   English   中英

浮點數小於或等於4.5的正則表達式

[英]regex for floating point number less than or equal to 4.5

我正在嘗試^[0-4][\\.][0-5][0-9]*但它也適用於4.56之類的數字,但與3.958數字不匹配

考慮以下模式:

^(?:[0-3](?:\.[0-9]+)?|4(?:\.[0-4][0-9]*)?|4\.50*|-[0-9]+(?:\.[0-9]+)?)$
    ^^^                 ^^^                ^^^   ^^^
    0 to 3              4.0...4.4999...    4.5   any negative number

這表示要匹配03 ,后跟任意可選的小數部分,或者匹配4后面跟着04 ,然后匹配其他任何數字。 交替的最后一部分允許任何負數。

演示版

但是,話雖這么說,進行此比較的簡單得多的方法是在編程語言中使用不等式運算符。 例如,可以使用以下命令在Java中替換上述復雜的正則表達式:

float f = 3.4f;
if (f <= 4.5f) {
    System.out.println("match");
}

嘗試這個 :

^(?!.*4\.([5]+[0]*[1-9]+|[6-9][0-9]*))([0-4](?:\.[0-9]*)?)$|(\-[0-9]+\.?[0-9]*)$

演示

暫無
暫無

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

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