正则表达式匹配以4个空格开头的字符串,后跟5个字符和数字

时间:2015-03-15 10:52:49

标签: php regex

我正在寻找执行以下操作的正则表达式

  

匹配以4个空格开头的字符串,后跟至少5个字符,然后是数字

示例

   ____Minera 123456789

到目前为止,这是我的代码

    <?php

   $x="    Minera 34";
   if(preg_match("@\w{6}+\d@i",$x))
    {echo "match found";}
   else
  {echo "no match";}
   ?>

但它不适合我。有任何想法吗?感谢。

3 个答案:

答案 0 :(得分:1)

如果你想要一个需要四个空格的图案,那么需要至少五个字母A-Z和/或a-z,然后需要一个空格,然后需要一个或多个数字,然后试试这个:

@^ {4}([A-Za-z]{5,}) ([0-9]+)$@

括号()包围字母和数字部分,因此您可以单独从匹配中取出这些,但如果您不需要从匹配中提取这些部分,请删除括号。< / p>

答案 1 :(得分:0)

要匹配描述的字符串(4个空格,然后至少5个字符和数字),您可以使用此正则表达式:

/^\s{4}[a-z]{5,}\d+$/i

但是在你的例子&#34; ____ Minerva 123456789&#34;中,你在字符和数字之间有一个额外的空格。因此,如果您需要与您的示例匹配的正则表达式,则可以使用以下表达式:

/^\s{4}[a-z]{5,}\s*\d+$/i

希望这有帮助。

答案 2 :(得分:-1)

你的正则表达式模式与开头的字符串和空格的开头不匹配

试试这个

 @^\s{4}+\w{6}+\s+\d@

重写

    <?php

   $x="    Minera 34";
   if(preg_match("@^\s{4}+\w{6}+\s+\d@",$x))
    {echo "match found";}
   else
  {echo "no match";}
   ?>
  

查看正在使用的正则表达式

https://eval.in/300405