不希望正则表达式`on *`匹配'选项'

时间:2010-08-03 00:35:24

标签: php regex

就正则表达而言,我需要学习很多东西。

我有一个像这样的关联数组:

array(
    "label"=>"Special",
    "title"=>"Category",
    "onclick"=>"dosomething()",
    "options"=>array(
        "one"=>"something"
    )
)

我正在尝试在数组上使用preg_match_all,如下所示:

$match="on*";
foreach ($value as $param=>$text) {
    if (preg_match_all("/".$match."/",$param,$matches)) {
        $return.=" ".$param."='".$text."'";
    }
}
return $return;

我的问题是$return最终看起来像这样:

 options='Array' onclick='dosomething()'

显然,我的正则表达式是错误的。 on*还不够 - 它也匹配“options”。 :(

有人能告诉我使用正确的正则表达式吗?

1 个答案:

答案 0 :(得分:1)

您正在测试字符串中的“on”位置。您需要使用以下内容将“on”锚定到字符串的前面:

/^on/

干杯。