ホームページ  >  記事  >  バックエンド開発  >  php preg_match

php preg_match

WBOY
WBOYオリジナル
2016-06-20 12:31:061798ブラウズ

preg_match (string pattern, string subject [, arraymatches [, int flags]])


pattern で指定された正規表現に一致するコンテンツを対象の文字列で検索します。

一致が提供された場合は、検索結果が入力されます。 $matches[0] にはパターン全体に一致するテキストが含まれ、$matches[1] には括弧内の最初にキャプチャされたサブパターンに一致するテキストが含まれます。
私は初心者です。この関数は一致するターゲットを 1 つまでしか一致させることはできませんか?matches[0] とmatches[1] にはそれぞれ何が含まれていますか?


ディスカッションへの返信 (解決策)

$s = 'func(123,456,789)';preg_match('/,?(\d+)/', $s, $m);print_r($m);preg_match_all('/,?(\d+)/', $s, $m);print_r($m);
Array(    [0] => 123    [1] => 123)Array(    [0] => Array        (            [0] => 123            [1] => ,456            [2] => ,789        )    [1] => Array        (            [0] => 123            [1] => 456            [2] => 789        ))

分からないならやってみろ

コンピュータサイエンスは実験科学であり、やらずに目を動かすだけでは不可能である

分からないなら、印刷して見てください。

$matches[1] には、最初にキャプチャされた括弧内のサブパターンと一致するテキストが含まれます。
ここで言及されている最初の括弧内のサブパターンは d+ を指しているのでしょうか? そうであれば、それは明らかです。すみません、自分で打ちたくないわけではないのですが、出力結果をBaiduで検索したのですが、ちょっと混乱してしまいました

(サブモードの開始
) サブの終了。 -mode

マニュアルは必読です!

preg_match_all を使用して複数一致

$matches[0] にはパターン全体に一致するテキストが含まれ、$matches[1] には最初にキャプチャされた括弧に一致するテキストが含まれます。サブパターンなど。

$matches[0] は境界のものも保存します
$matches[1] は通常の一致するもののみを保持します

たとえば、

$content = '<img src="http://www.csdn.net/abc.jpg">';preg_match_all('/<img.*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\">/i', $content, $matches); print_r($matches[0]);print_r($matches[1]);

配列
(
[0] => 6508f8f645498a97cf4f06f7d24f8449
)

配列
(
[0] => http://www.csdn.net/abc.jpg
)

$matches[0] には、パターン全体、$matches[1] には括弧内に最初にキャプチャされたサブパターンと一致するテキストが含まれます。

$matches[0] は境界のものも保存します
$matches[1] は通常の一致するもののみを保持します

たとえば、

$content = '<img src="http://www.csdn.net/abc.jpg">';preg_match_all('/<img.*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\">/i', $content, $matches); print_r($matches[0]);print_r($matches[1]);

配列
(
[0] => 6508f8f645498a97cf4f06f7d24f8449
)

配列
(
[0] => http://www.csdn.net/abc.jpg
)


最初の括弧内のパターンは理解できました。 match【1】 は括弧内の対応するパターンを正確に出力します

今後同様の問題が発生した場合は、最初にそれを印刷できます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。