$sourceArray = array('venkat', 'bala', 'vignesh', 'vardan', 'harishv');
输出必须是一个数组,其值以'v'开头,长度为6个字符。
以下必须是上述sourceArray的输出数组作为输入
$outputArray = ('venkat','vardan');
我尝试了preg_grep('/^([v.]{6,6})/',$sourceArray));
,它返回了一个空数组。
谁能告诉我哪里出错了?
答案 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;
}
}
我希望它有所帮助!