0

次の問題があります。文字列にパターン文字列が含まれているかどうかを確認し、含まれている場合は結果をエコーする必要があります。

$searching_post = preg_match("/#([0-9]{3,8})/", $_POST['Description']);

パターンが含まれている場合、これは 1 を返しますが、代わりにその結果を返したいと思います。したがって$_POST['Description']、たとえば #123 が含まれている場合、代わりに #123 を返したい 1. 誰もその方法を知っていますか?

4

1 に答える 1

2

のマニュアルを見るとpreg_match、一致が 3 番目のパラメーターの参照変数に入れられることがわかります。

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )


preg_match() は、パターンが指定されたサブジェクトに一致する場合は 1 を返し、そうでない場合は 0 を返し、エラーが発生した場合は FALSE を返します。


したがって、コードは次のようになります。

$searching_post = null;
if (preg_match("/#([0-9]{3,8})/", $_POST['Description'], $matches)) {
    $searching_post = $matches[1];
}
var_dump($searching_post); //will be NULL if nothing was found
于 2013-08-29T13:48:54.273 に答える