1

リモートWebサイトをロードして、括弧内にあるすべての番号を取得しようとしています。しかし、最終的に発生するのは、最後の値とのみ一致することです。

私の正規表現は間違っていますか?正しいフラグを使用していますか?

2番目の$html変数に一致するものの例を追加しました。

    //$html = file_get_contents("http://example.com/test.html");

    $html = "(1234) (12) (1)  \r\n  (1346326)";
    preg_match_all("^[(\d)]+$^", $html, $matches, PREG_PATTERN_ORDER);
    print_r($matches);
    echo "<br>";
    foreach ($matches as $val) {
        echo "matched: " . $val[0] . "\n";

    }

ありがとう。

4

2 に答える 2

5

どうですか:

preg_match_all("/\((\d+)\)/", $html, $matches, PREG_PATTERN_ORDER); 
print_r($matches[1]);
于 2012-07-21T15:22:21.820 に答える
0

考えられる問題が2つあります。

まず、start(^)からend($)までを照合します。これは、行の先頭と行の終わりの間に正確に適合するもののみを照合します。

次に、/gsregexパラメーターを使用してすべてを丸呑みしたいと思うでしょう。

preg_match_all("/\b(\d+)\b/gs" ...
于 2012-07-21T15:22:35.597 に答える