正则表达式计数不包括空格的位数

时间:2014-06-01 10:04:00

标签: regex

我想创建一个验证以下条件的正则表达式:

  1. 仅包含数字
  2. 允许数字之间只有一个空格
  3. 不包括空格的总数字必须介于16至19之间
  4. 这是我到目前为止的正则表达式:

    ^[0-9]+( [0-9]+)*$
    

    基本上我得到条件(1)和(2)所以我真的需要帮助(3)。谢谢你的时间。

2 个答案:

答案 0 :(得分:14)

一块蛋糕。

^\d( ?\d){15,18}$

唯一值得注意的是,{15,18}需要少一个 - 第一个\d已经吃了一个数字。

答案 1 :(得分:0)

我认为以下应该可以解决问题:

^[0-9]( ?[0-9]){15}( ?[0-9])?( ?[0-9])?( ?[0-9])?$

我不知道你正在使用什么正则表达式引擎。如果它不支持{15}那么你 必须在15次之前重复表达 - 这不是很好,所以如果可能的话 你应该使用一个支持它的引擎。

大多数unix实用程序(如sed,grep等)都有(非标准化)开关 扩展正则表达式支持或备用可执行文件(如egrep)。