regexp验证非零数字

我的要求是验证一个非零数字。我使用的正则表达式如下。

^[1-9]?\d+(\.\d)?\d*$

有效值应为

  • 2
  • 22
  • 2222(最多任意数字)
  • 2.2222(最多小数点位数)

无效值

  • 0
    1. (。不带十进制值)
  • 0.1(任意小数位数,但起始数字为0)
  • 2.4.5(一个以上)。

基本上任何以0或大于1开头的值。或时未提供小数点。被添加,不正确。

love990311 回答:regexp验证非零数字

^[1-9]\d*(?:\.\d+)?$

https://regex101.com/r/wHZUoW/1

-由于您不希望数字以0开头,因此不应将[1-9]开头的?设为可选。

-作为一种良好的常规做法,使用非捕获组(?: ... )代替捕获组,因为以后不需要引用内容。

,

您可以使用此正则表达式来验证您的号码:

expand_and_put(a,(3,4),9)

它使用@WiktorStribiżew提出的正则表达式作为对Gson的注释,以匹配十进制数字(^(?=[1-9])\d*\.?\d+$ ),并添加正向查找以确保数字的第一个字符不为0。请注意,如果要允许使用诸如^\d*\.?\d+$之类的数字,则应将.3添加到前瞻字符类中,即.

this question

,

[1-9]+[0-9]*(\.[0-9]+)?应该适合您的情况。

[1-9]+将确保表达式以不同于0的数字开头。

[0-9]*将确保允许表达式在第一位数字后加零。

(\.[0-9]+)?将允许表达式的扩展,该表达式必须具有.及其后至少一个数字。最后的?使其成为可选。

顺便说一句,我真的很喜欢这个网站来测试我的正则表达式:https://regexr.com/,您应该尝试一下。

本文链接:https://www.f2er.com/3155688.html

大家都在问