正则表达式只匹配5个字母的单词

iwe*_*wek 3 regex

我有一个数组,只想检索5个字母的单词,不再是,我试图使用

$new = preg_grep("/.{5}/", $array);
Run Code Online (Sandbox Code Playgroud)

但这导致任何至少5个字母的单词.我想要任何最多5个字母的单词.

Ben*_*jie 6

你需要使用start(^)和end($)修饰符,所以

$new = preg_grep("/^.{5}$/", $array);
Run Code Online (Sandbox Code Playgroud)

但是,更有效的方法可能只是做一个strlen基于过滤器:

function len5($v){
   return strlen($v) == 5;
}
$new = array_filter($array, 'len5');
Run Code Online (Sandbox Code Playgroud)