Regex 检查是否不是00000000或11111111或22222等

Regex 检查是否不是00000000或11111111或22222等,regex,Regex,我有一个正则表达式来检查(法语)电话号码是否正确。 电话号码必须以一个0开头,以一个1或2或3或4或5或9继续,以8个号码继续,但这些号码不得与00000000或11111111相同 我当前的正则表达式: /^0(1|2|3|4|5|9){1,1}[0-9]{8,8}/i 提前感谢您的帮助。您可以使用以下正则表达式: /^0[1-59](?!(\d)\1{7}$)\d{8}$/i 有几点: {1,1}就像被删除一样好 {8,8}和{8}一样好 (1 | 2 | 3 | 4..)可以替换为字

我有一个正则表达式来检查(法语)电话号码是否正确。 电话号码必须以一个0开头,以一个1或2或3或4或5或9继续,以8个号码继续,但这些号码不得与00000000或11111111相同

我当前的正则表达式:

/^0(1|2|3|4|5|9){1,1}[0-9]{8,8}/i

提前感谢您的帮助。

您可以使用以下正则表达式:

/^0[1-59](?!(\d)\1{7}$)\d{8}$/i
有几点:

  • {1,1}
    就像被删除一样好
  • {8,8}
    {8}
    一样好
  • (1 | 2 | 3 | 4..)
    可以替换为字符类-
    [1234]
  • [12345]
    可以替换为字符类中的范围-
    [1-5]
上面的正则表达式使用负前瞻断言-
(?!(\d)\1{7})
来断言前2位之后的8位数字不完全相同。如果断言为true,则它与后面的8位数字匹配

  • (\d)
    捕获组1中的第一个数字
  • 然后
    \1
    反向引用捕获的组,以匹配与
    \d
  • {7}
    将反向引用匹配7次。这意味着-
    (\d)\1{7}
    匹配同一个数字8次

您可以使用以下正则表达式:

/^0[1-59](?!(\d)\1{7}$)\d{8}$/i
有几点:

  • {1,1}
    就像被删除一样好
  • {8,8}
    {8}
    一样好
  • (1 | 2 | 3 | 4..)
    可以替换为字符类-
    [1234]
  • [12345]
    可以替换为字符类中的范围-
    [1-5]
上面的正则表达式使用负前瞻断言-
(?!(\d)\1{7})
来断言前2位之后的8位数字不完全相同。如果断言为true,则它与后面的8位数字匹配

  • (\d)
    捕获组1中的第一个数字
  • 然后
    \1
    反向引用捕获的组,以匹配与
    \d
  • {7}
    将反向引用匹配7次。这意味着-
    (\d)\1{7}
    匹配同一个数字8次

请注意,
{n,n}
{n}
相同,您可以完全删除
{1,1}
,因为默认情况下是“单匹配”。根据regex标记,您在中使用regex的语言是什么?关于
012222444
它是否有效?或
013333334
?以
06
07
08
开头的数字如何?你不想让他们匹配吗?@sp00m我同意你的看法,法国电话号码可以从01开始到09<代码>08是“特殊的”(商业的、黄色的、靛蓝的……)
09
保留给互联网提供商用于VoIP线路。请注意,
{n,n}
{n}
相同,您可以完全删除
{1,1}
,因为默认情况下是“单一匹配”。根据regex标记,您在中使用regex的语言是什么?关于
012222444
它是否有效?或
013333334
?以
06
07
08
开头的数字如何?你不想让他们匹配吗?@sp00m我同意你的看法,法国电话号码可以从01开始到09<代码>08是“特殊的”(商业的、黄色的、靛蓝的……)
09
是为VoIP线路保留给互联网提供商的。您的速度更快,所以+1,另一方面,不要忘记您可以将字符类更改为
[1-59]
:)。您的速度更快,所以+1,另一方面,不要忘记您可以将字符类更改为
[1-59]
:)。