首页 > 解决方案 > 正则表达式对单个字符只检查一次并且包含多个数字?

问题描述

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

我的文本示例是:

11.00 11.000 1.0 1 1 2.

我想检查文本是否仅包含一个点,并且我想检查文本是否包含多个数字 1 或类似 111.00。我怎样才能做到这一点。

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

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

标签: regex

解决方案


您可以使用

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

请参阅正则表达式演示

细节

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

推荐阅读