php - 正则表达式以匹配以...开头的内容

时间:2014-02-20 12:12:35

标签: php regex

我非常抱歉,但阵列看起来像这样:

Array
(
[1] => Array
    (
        [0] => msie6.0
        [1] => 7
    )

[2] => Array
    (
        [0] => safari5.0.3
        [1] => 5
    )

[3] => Array
    (
        [0] => chrome18.0.1025.308
        [1] => 1
    )

[4] => Array
    (
        [0] => firefox20.0
        [1] => 4
    )
[5] => Array
    (
        [0] => msie7.0
        [1] => 915
    )

依旧...... 当我尝试将msie6.0msie7.0替换为InternetExplorer并将其添加时出现:

preg_match("/#^msie(.*)$#i/is", $results, $matches);
$test = $matches[0] ;
print_array($test);
$results["#^startText(.*)$#i"] = $results['InternetExplorer'];
print_array($results);
unset($results["/#^msie(.*)$#i/is]);

它与我想要的完美不符。任何解决方案? 为了拥有:

Array
(
[1] => Array
    (
        [0] => InternetExplorer
        [1] => 922
    )

[2] => Array
    (
        [0] => safari5.0.3
        [1] => 5
    )

[3] => Array
    (
        [0] => chrome18.0.1025.308
        [1] => 1
    )

[4] => Array
    (
        [0] => firefox20.0
        [1] => 4
    )

1 个答案:

答案 0 :(得分:2)

在您澄清评论之后。我认为你不需要正则表达式,strpos就足够了。

$rows["InternetExplorer"] = 0;
foreach($rows as $key => $value){
  if(strpos($key,"msie") !== false){
     $rows["InternetExplorer"] += $value;
     unset($rows[$key]);
  }
}

<强> DEMO