【问题标题】:Regular Expression check only once for a single character and contains more then one number?正则表达式对单个字符只检查一次并且包含多个数字?
【发布时间】:2021-09-16 22:11:09
【问题描述】:

我想建立一个正则表达式来检查文本中的字符串是否在数字之间包含一个点并且有多个数字。

我的文本示例是:

11.00 11.000 1.0 1 1 2.

我想检查文本是否只包含一个点,并且我想检查文本是否包含多个数字 1 或类似 111.00。我该怎么做。

我当前的表达式检查多个点,它不检查文本是否包含多个正确格式 1.1 或 1 的值。此外,我正在检查新行和任意数量的空格,如下所示:

/^[0-9 .\n\t]*$/  

【问题讨论】:

  • 试试^\d+(?:\.\d+)?(?:\s+\d+(?:\.\d+)?)+\.$这样的模式
  • 我在"超过一个数字1或..."失去了你
  • 文本最多包含一个以上的数字,这些数字可以带点或不带点
  • 数字可以像 1.0 11.00 或 1 2 3 如果它的点可能在左右两边都包含更多的数字,比如 11.00
  • @WiktorStribiżew

标签: regex


【解决方案1】:

你可以使用

^\d+(?:\.\d+)?(?:\s+\d+(?:\.\d+)?)+$

请参阅regex demo

详情

  • ^ - 字符串开头
  • \d+(?:\.\d+)? - 一位或多位数字,然后是可选的 . 和一位或多位数字
  • (?:\s+\d+(?:\.\d+)?)+ - 一次或多次 出现
    • \s+ - 一个或多个空格
    • \d+(?:\.\d+)? - 一个或多个数字,然后是可选的
  • $ - 字符串结束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多