用于将变量内的字符串与数组匹配的正确语法

时间:2010-05-30 18:20:46

标签: php regex pcre

我有一个变量$var,它包含一串字符,这是一个包含输入值的动态变量。

$var可以是'abc',或$var可以是'blu'

我想将变量中的字符串与数组匹配,并返回所有匹配项。

$array = array("blue", "red", "green");

在php中编写代码的正确语法是什么,我的粗略代码在

下面
$match = preg_grep($var, $array); (incorrect syntax of course)

我试图把引号和逃避斜线,但到目前为止没有运气。有什么建议吗?

TIA

2 个答案:

答案 0 :(得分:2)

尝试

$match = preg_grep('/' . $var . '/', $array);

Patterns for PCREs必须附在delimiters中。

当然,您必须根据需要调整模式。例如。如果您想将开始的数组中的所有字符串与$var中的字符串匹配,则必须将其更改为:

$match = preg_grep('/^' . $var . '/', $array);

等等......

答案 1 :(得分:1)

$var = 're';

$array = array("blue", "red", "green");

$pattern = '/'.$var.'/';

$matches = preg_grep($pattern, $array);

echo '<pre>';
var_dump($matches);
echo '<pre>';

返回

array(2) {
  [1]=>
  string(3) "red"
  [2]=>
  string(5) "green"
}