-1

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

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

3 回答 3

1

基于http://ideone.com/vDV7yE,您将希望使用它$matches[1][0]来获取您的字符串:

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

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

)
于 2012-10-23T23:50:49.990 回答
0

试试这个模式,

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

请参阅Lookahead 和 Lookbehind 零宽度断言。

于 2012-10-23T23:48:39.843 回答
0

在这里查看:http: //php.net/manual/en/function.preg-match-all.php

你会想做:

echo $matches[1][0];

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

所以你已经完成了一半,但你需要在你返回的数组中获取实际值。

于 2012-10-23T23:48:40.803 回答