php:字符串之间的正则表达式无法正常工作

时间:2012-10-23 23:45:52

标签: php regex

我需要检索值 6Lf4 ,但它只是返回数组..我做错了什么?

  <?php
    $inputString = 'private="key" value="6Lf4" sent="yut"';
    $matches = array();
    preg_match_all('/key" value="(.*?)"/', $inputString, $matches);
    echo $matches[1];
    ?>

3 个答案:

答案 0 :(得分:1)

根据http://ideone.com/vDV7yE,您需要使用$matches[1][0]来获取字符串:

Array
(
    [0] => Array
        (
            [0] => key" value="6Lf4"
        )

    [1] => Array
        (
            [0] => 6Lf4
        )

)

答案 1 :(得分:0)

尝试这种模式,

(?<=(value=")).*?(?=")

参见 Lookahead and Lookbehind Zero-Width Assertions.

答案 2 :(得分:0)

点击此处:http://php.net/manual/en/function.preg-match-all.php

你想做的事:

echo $matches[1][0];

这是因为你使用键1来获取带括号的子模式是正确的,但是你想获得这种类型的第一个匹配,所以你需要在索引0获得THAT子数组的值。

所以你已经到了一半,但是你需要获得你返回的数组中的实际值。