Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使正则表达式通过这些条件_Ruby_Regex - Fatal编程技术网

Ruby 如何使正则表达式通过这些条件

Ruby 如何使正则表达式通过这些条件,ruby,regex,Ruby,Regex,我想用正则表达式来验证一个电话号码的长度,但只有两个条件。首先,它的长度应该是10 字符串长度应为10位,可以是以下任意数字 4345623467 若字符串的长度是11,那个么应该以1开头 14345623467 长度可以是10或11。其他长度应无效 感谢您的帮助。以下正则表达式匹配以1开头的10位或11位数字序列,或者匹配正好10位数字的任意序列: /^?:1\d{9,10}|\d{10}$/ 下面是它的分解方式,以便您可以使用正则表达式变得更强大:

我想用正则表达式来验证一个电话号码的长度,但只有两个条件。首先,它的长度应该是10

字符串长度应为10位,可以是以下任意数字

          4345623467
若字符串的长度是11,那个么应该以1开头

          14345623467
长度可以是10或11。其他长度应无效


感谢您的帮助。

以下正则表达式匹配以1开头的10位或11位数字序列,或者匹配正好10位数字的任意序列:

/^?:1\d{9,10}|\d{10}$/ 下面是它的分解方式,以便您可以使用正则表达式变得更强大:

/^?:1\d{9,10}|\d{10}$/ │├─┘ ├──────┘ ├────┘ └ 绳子的末端。 ││ │ └ 任何数字重复十次。 ││ └ 任何数字0-9重复9或10次。 │└ 由两个可能的匹配项组成的非匹配组,由管道?:…|。。。 └ 字符串的开头。 这应该做到:

/^(\d{10}|1\d{10})$/
更简单的一个:可选1后跟10位数字

/^1?\d{10}$/

为上面的字符串制作正则表达式,因为我在正则表达式方面非常弱。你在任何事情上做得更好的方法都是通过尝试,而不是要求