preg_match
およびpreg_match_all
関数は、それらを使用する方法を実行します。
preg_match
は、最初の一致の検索を停止します。一方、preg_match_all
は、文字列全体の処理が完了するまで検索を続けます。一致が見つかると、文字列の残りの部分を使用して、別の一致を試みます。
preg_match および preg_match_all PHPの関数はPerl互換の正規表現を使用します。
このシリーズを見て、Perl互換の正規表現を完全に理解できます。 https://www.youtube.com/watch?v=GVZOJ1rEnUg&list=PLfdtiltiRHWGRPyPMGuLPWuiWgEI9Kp1w
_preg_match
_関数は、_$pattern
_文字列内の特定の_$subject
_を検索するために使用され、パターンが最初に検出されると、検索を停止します。 _$matches
_で一致を出力します。ここで_$matches[0]
_には完全なパターンに一致したテキストが含まれ、_$matches[1]
_には最初にキャプチャされた括弧付きサブパターンに一致したテキストが含まれます。
preg_match()
の例_<?php
preg_match(
"|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$matches
);
var_dump($matches);
_
出力:
_array(2) {
[0]=>
string(16) "<b>example: </b>"
[1]=>
string(9) "example: "
}
_
_preg_match_all
_関数は、文字列内のすべての一致を検索し、_$matches
_に従って順序付けられた多次元配列(_$flags
_)に出力します。 _$flags
_値が渡されない場合、結果を並べ替えるので、_$matches[0]
_は完全なパターン一致の配列、_$matches[1]
_は最初のかっこで囲まれたサブパターンに一致する文字列の配列などになります。オン。
preg_match_all()
の例_<?php
preg_match_all(
"|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$matches
);
var_dump($matches);
_
出力:
_array(2) {
[0]=>
array(2) {
[0]=>
string(16) "<b>example: </b>"
[1]=>
string(36) "<div align=left>this is a test</div>"
}
[1]=>
array(2) {
[0]=>
string(9) "example: "
[1]=>
string(14) "this is a test"
}
}
_
具体例:
preg_match("/find[ ]*(me)/", "find me find me", $matches):
$matches = Array(
[0] => find me
[1] => me
)
preg_match_all("/find[ ]*(me)/", "find me find me", $matches):
$matches = Array(
[0] => Array
(
[0] => find me
[1] => find me
)
[1] => Array
(
[0] => me
[1] => me
)
)
preg_grep("/find[ ]*(me)/", ["find me find me", "find me findme"]):
$matches = Array
(
[0] => find me find me
[1] => find me findme
)