簡體   English   中英

只有正整數的正則表達式是什么? (不允許零)

[英]What's the regular expression for positive whole numbers only? (zero is not allowed)

只有正整數的正則表達式是什么? (不允許零)

我只能獲得數字的正則表達式,即^\\d+$ 我一直試圖在網上尋找一個,但已經有一個小時,所以我決定在Stack Overflow上發布它。

火柴:

1 || 2 || 444 || 9000 || 012

非比賽:

9.2 || -90

^0*[1-9]\\d*$將匹配除零之外的所有數字。

可能你正在尋找^[1-9]+$模式。 它會匹配12452253等,但不是1003 0124 如果你想匹配第三個數字( 1003 ),也可以使用^[1-9]\\d*$ pattern。

在php中你會使用

preg_match('/^[1-9]\d*$/', $subject, $matches)

這顯然是:

[1-9]\d*

(一到九后跟零或更多位數。)當然,這會排除像0190這樣的東西。

我知道你要求正則表達式,但你可能會考慮

$opts = array(
    'options' => array(
        'min_range' => 1,
        'max_range' => PHP_INT_MAX
    )
);
$n = filter_var($input, FILTER_VALIDATE_INT, $opts);
/^\+?([1-9]|0.)[0-9\.]*$/

這種模式可能對你有所幫助,但我認為你必須具備編程語言技能才能進行算術檢查。 例如在php中。 $is_positive = $input > 0 ”是的,這很容易:)

嘗試這個

[1-9]\d*|[0]*[1-9]\d*

這是允許0到100而不是01的一個

^((([0]$)|[1-9][0-9]{0,1})|100)$

暫無
暫無

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

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