-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=")).*?(?=")

ゼロ幅アサーションの先読みおよび後読みを参照してください。

于 2012-10-23T23:48:39.843 に答える
0

ここをチェックしてください:http://php.net/manual/en/function.preg-match-all.php

あなたがしたいと思うでしょう:

echo $matches[1][0];

これは、キー 1 を使用して括弧で囲まれたサブパターンを取得することは正しいが、このタイプの最初の一致を取得したいため、インデックス 0 でそのサブ配列の値を取得する必要があるためです。

途中まで来ましたが、返される配列内の実際の値を取得する必要があります。

于 2012-10-23T23:48:40.803 に答える