【问题标题】:Regex pattern for numeric values [closed]数值的正则表达式模式
【发布时间】:2008-11-14 15:51:59
【问题描述】:

我需要一个正则表达式模式来只接受正整数。它也可以接受一个零。

我不想接受小数、负数和带前导零的数字。

有什么建议吗?

【问题讨论】:

标签: regex


【解决方案1】:
^(0|[1-9][0-9]*)$

【讨论】:

  • 是否应该包含一个可选的逗号,以防格式允许(如 1,000,000)?
  • 不,它不应该接受逗号。
  • 这样就可以了:^(0|[1-9][0-9]*|[1-9][0-9]{0,2}(,[0- 9]{3,3})*)$
  • 你能解释一下这个正则表达式吗?为什么@"^\\d$" 不起作用?
  • "^\d$" 只做个位数,但 "^\d{1,}$" 做一个或多个(Powershell V4 语法)
【解决方案2】:

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

我只使用“[0-9]+”来表示正整数。

【讨论】:

  • 如果我在 R 中使用 grepl("[0-9]+","1111a"),它给了我 TRUE
  • @AmanMathur ^[0-9]+$ 然后。
【解决方案3】:

这将允许以零开头的十进制数(或整数):

^(([1-9]*)|(([1-9]*)\.([0-9]*)))$

如果你想允许以零开头的数字,你可以这样做:

^(([0-9]*)|(([0-9]*)\.([0-9]*)))$

【讨论】:

  • 这些将允许空字符串和 '.'自己。
【解决方案4】:
/([1-9][0-9]*)|0/

【讨论】:

    【解决方案5】:
    /^0|[1-9]\d*$/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      相关资源
      最近更新 更多