preg_matchの第一引数に変数を代入するには
PHPのpreg_match
関数は、正規表現を使って文字列を検索するために使用されます。第一引数には、正規表現パターンを指定する文字列を渡します。
ただし、正規表現パターンを変数に格納し、その変数をpreg_match
関数の第一引数に渡すこともできます。つまり、次のように正規表現パターンを変数$pattern
に格納してから、preg_match
関数に渡すことができます。
$pattern = "/[0-9]+/";
$string = "abc123def";
if (preg_match($pattern, $string)) {
echo "Match found!";
} else {
echo "Match not found.";
}
このコードでは、正規表現パターン/[0-9]+/
を変数$pattern
に格納し、preg_match
関数の第一引数として使用しています。結果として、文字列"abc123def"
に対して正規表現パターンがマッチし、"Match found!"が出力されます。
正規表現内に引数
正規表現内に引数を埋め込むことができます。PHPの場合、preg_replace_callback
関数を使用することで、正規表現内に引数を含むコールバック関数を指定することができます。この関数は、正規表現にマッチする部分をコールバック関数で置換します。
以下は、引数を含む正規表現を使用して、文字列内の特定の単語を別の単語に置換する例です。
function replace_word($match) {
$replace_word = "World";
return "Hello $replace_word!";
}
$string = "Hello Planet!";
$pattern = "/(Planet)/";
$new_string = preg_replace_callback($pattern, "replace_word", $string);
echo $new_string;
このコードでは、preg_replace_callback
関数を使用して、文字列"Hello Planet!"
内の単語"Planet"
を、コールバック関数replace_word
で置換しています。このコールバック関数では、文字列"Hello World!"
を返すように設定されています。
preg_replace_callback
関数の第三引数には、コールバック関数に渡す引数を指定することができます。例えば、以下のようにして、コールバック関数に置換後の単語を渡すことができます。
function replace_word($match, $replace_word) {
return "Hello $replace_word!";
}
$string = "Hello Planet!";
$pattern = "/(Planet)/";
$replace_word = "World";
$new_string = preg_replace_callback($pattern, "replace_word", $string, $replace_word);
echo $new_string;
このコードでは、preg_replace_callback
関数の第四引数に置換後の単語"World"
を渡し、コールバック関数で使用しています。結果として、文字列"Hello World!"
が出力されます。