搜索以字符和特定长度开头的文本

时间:2014-04-09 13:16:06

标签: php regex

$sourceArray = array('venkat', 'bala', 'vignesh', 'vardan', 'harishv');

输出必须是一个数组,其值以'v'开头,长度为6个字符。

以下必须是上述sourceArray的输出数组作为输入

$outputArray = ('venkat','vardan');

我尝试了preg_grep('/^([v.]{6,6})/',$sourceArray));,它返回了一个空数组。

谁能告诉我哪里出错了?

4 个答案:

答案 0 :(得分:3)

要使用的正则表达式是:

/^v.{5}$/

以下是产生您期望的代码:

$sourceArray = array('venkat', 'bala', 'vignesh', 'vardan', 'harishv');

var_dump(
    preg_grep('/^v.{5}$/',$sourceArray)

答案 1 :(得分:2)

您的正则表达式匹配“v或点. 6次”。您可以改为使用:

^v.{5}$

v,后跟5个字符。

答案 2 :(得分:0)

尝试preg_grep('/^(v.{5})$/',$sourceArray);(我没有检查过这可能是错误的)

'。'在[...]结构中实际上匹配句点而不是任何字符

答案 3 :(得分:0)

您可以让正则表达式执行此操作,或者您可以执行以下操作:

$results = array();
$startLetter = "v";

foreach($sourceArray as $key){
    if($key[0] == $startLetter && strlen($key) == 6 )
    {
        $results[] = $key;
    }
}

我希望它有所帮助!