0

OK、私はPHPの正規表現に本当に慣れていないので、誰かがわかりやすい記事にリンクできれば素晴らしいでしょう...

この場合、文字列の値を見つけたいと思います。

たとえば

$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem ipsum";

「10」を返す関数が欲しいです。それが配列に格納されていて、これらが複数ある場合、関数がそれらの多くを取得できるのは素敵なことです。配列にそれらが必要です。

$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem ipsum [get_this_value=9] etc etc";

array(10, 9) などを返します...

4

2 に答える 2

2

まず、正規表現について学習する必要があります。このチュートリアルを強くお勧めします。

次に、 PHP のドキュメントで PHP 固有の正規表現の問題について読むことができます。

しかし、あなたが始めるために、これはあなたの問題を解決するでしょう:

preg_match_all("/\[[^\]=]*=(\d+)\]/", $string, $matches);

$matches[1]これで目的の配列になります。これは特定の文字列に依存しないことに注意してくださいget_this_value

リンク先のページで実際に正規表現を学習するために、この正規表現の詳細については説明しませんが、代わりに私が使用した概念について説明します。エスケープされていない角括弧[...]は、文字クラスを示します。この場合 ( により^)否定されたものです。組み込み文字クラス\dです。は反復量指定子です。また、括弧はキャプチャ グループを示します。+(...)

于 2012-11-11T23:34:18.377 に答える
1
<?php
$string = "blah blah blha lorem ipsum [get_this_value=10] more lorem [get_this_value=13] ipsum";

preg_match_all("~\[get_this_value=(\d+)\]~i", $string, $matches);
print_r($matches);
/*

Array
(
    [0] => Array
        (
            [0] => [get_this_value=10]
            [1] => [get_this_value=13]
        )

    [1] => Array
        (
            [0] => 10
            [1] => 13
        )

)
*/
于 2012-11-11T23:22:19.653 に答える