Regex 正则表达式计数不含空格的位数

Regex 正则表达式计数不含空格的位数,regex,Regex,我想创建一个正则表达式,用于验证以下条件: 只包含数字 数字之间只允许有一个空格 除空格外的总位数必须介于16到19之间 以下是我到目前为止使用的正则表达式: ^[0-9]+( [0-9]+)*$ 基本上我有条件(1)和(2),所以我真的需要帮助(3)。谢谢你抽出时间。小菜一碟 ^\d( ?\d){15,18}$ 唯一值得一提的是,{15,18}需要少一个——第一个\d已经吃了一个数字。我认为以下方法可以解决这个问题: ^[0-9]( ?[0-9]){15}( ?[0-9])?( ?[0-9

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

  • 只包含数字
  • 数字之间只允许有一个空格
  • 除空格外的总位数必须介于16到19之间
  • 以下是我到目前为止使用的正则表达式:

    ^[0-9]+( [0-9]+)*$
    
    基本上我有条件(1)和(2),所以我真的需要帮助(3)。谢谢你抽出时间。

    小菜一碟

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

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

    我认为以下方法可以解决这个问题:

    ^[0-9]( ?[0-9]){15}( ?[0-9])?( ?[0-9])?( ?[0-9])?$
    
    我不知道你用的是什么regexp引擎。如果它不支持{15},那么您 必须在15次之前重复该表达式-这不太好,所以如果可能的话 您应该使用支持该功能的发动机

    大多数unix实用程序(如sed、grep等)都有一个(非标准化的)用于
    扩展的regexp支持,或替代的可执行文件(如egrep)。

    这比你做的要简单;你需要16-19个数字,每个数字前面可以有一个空格,第一个除外。所以你要找的是一个后跟
    {15,18}的数字
    numbers前面有一个可选空格。您在哪里使用这个空格?例如,在编程环境中,第二步是执行一个简单的函数调用来检查数字吗?regex的方言也是相关的,那么,您在哪里使用这个空格?这个空格是可选的吗?是不是有效的
    1
    16倍?我在PHP上使用它来检查检查用户输入并警告他们信用卡号的格式是否正确。对不起,我没有缩进代码,因此stackoverflow重新格式化(即完全更改)了表达式。现在修好了。