preg_replace()
関数の使い方
preg_replace()
関数は、
文字列内で正規表現(regular expression)を使って特定のパターンを検索し、別の文字列に置き換える(変換する)関数です。
$input = 'こんにちは、PHP!';
$pattern = '/こんにちは/'; // 「こんにちは」を検索する正規表現
$replacement = 'やあ'; // 「こんにちは」を「やあ」に置き換える
$output = preg_replace($pattern, $replacement, $input);
echo "Original input: $input"; // 出力: "Original input: こんにちは、PHP!"
echo "Output: $output"; // 出力: "Output: やあ、PHP!"
- パターンではなく正確な文字列を一致させたい場合は、
str_replace()
関数を使用するのが適しています。 - 文字列内で正規表現パターンを使って一致する部分を検索したい場合は、
preg_match()
関数を使用してください。
preg_replace()
関数の書式は次のとおりです。
構文
preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null
// preg_replace(正規表現パターン、置き換える文字列、対象の文字列[、最大置換回数[、カウント変数]]);
引数
$pattern |
必須。正規表現またはパターンを指定します。 文字列または文字列の配列で指定できます。 |
---|---|
$replacement |
必須。見つかったパターンを置き換える新しい文字列または文字列の配列を指定します。 |
$subject |
必須。対象となる文字列または文字列の配列を指定します。 ここでパターンを検索して置換処理を行います。 |
$limit |
オプション。置換処理の最大回数を指定します。 デフォルト値は -1 で、この場合は一致するすべての部分が置換されます。 |
$count |
オプション。置換処理の回数を格納する変数です。 デフォルト値は null です。preg_replace() 関数が呼び出される際に、この変数に置換処理の回数が格納されます。参照渡しの変数です。 |
戻り値
preg_replace()
関数の返り値は、置換処理が実行された後の文字列または文字列の配列です。この関数は、入力された対象文字列から正規表現に一致する部分を検索し、置換された新しい文字列または配列を生成して返します。
例
例を通して、preg_replace()
関数の使い方を確認しましょう。
基本的な使い方
$original_string = 'Hello, world! Hello, PHP! Hello, universe!';
$pattern = '/Hello/';
$replacement = 'Hi';
$new_string = preg_replace($pattern, $replacement, $original_string);
echo $new_string; // 出力: 'Hi, world! Hi, PHP! Hi, universe!'
上記の例では、preg_replace()
関数が「Hello」を「Hi」に置き換えて新しい文字列を生成し、その新しい文字列が$new_string
変数に格納されます。その後、echo $new_string;
を使って新しい文字列を出力します。
したがって、preg_replace()
関数を呼び出した結果である$new_string
は、置換された文字列を持つ新しい文字列を表します。
preg_replace()
関数に配列を使って複数の文字列を置換する例
$original_string = 'Apples are red. Bananas are yellow. Apples and bananas are delicious.';
$search = ['/Apples/', '/Bananas/']; // 正規表現を配列で指定
$replace = ['Oranges', 'Grapes']; // 置換する文字列を配列で指定
$new_string = preg_replace($search, $replace, $original_string);
echo $new_string;
// 出力: 'Oranges are red. Grapes are yellow. Oranges and bananas are delicious.'
この例では、「Apples」と「Bananas」をそれぞれ「Oranges」と「Grapes」に置き換える処理をpreg_replace()
関数を使って行いました。結果として、「Apples」と「Bananas」がそれぞれ「Oranges」と「Grapes」に置き換えられた新しい文字列を確認できます。
$count
引数を使った便利な例
$count
引数を使った便利なpreg_replace()
関数の例のひとつに、特定のパターンや文字列が何回現れるかを数える方法があります。これにより、文字列内で特定のパターンの繰り返し回数を把握できます。
例えば、文字列内で「PHP」が何回現れるかを数えたい場合を考えてみましょう。
$original_string = 'PHP is a popular scripting language. PHP stands for PHP: Hypertext Preprocessor.';
$pattern = '/PHP/';
$replacement = 'PHP';
$count = 0; // 置換回数を格納する変数を初期化
$new_string = preg_replace($pattern, $replacement, $original_string, -1, $count);
echo $new_string; // 出力: 'PHP is a popular scripting language.'
echo "The word 'PHP' appeared {$count} times.";
// 出力: "The word 'PHP' appeared 3 times."
上記の例では、$pattern
変数に検索するパターン「PHP」を指定しています。preg_replace()
関数を実行する際に$count
変数も渡しているため、置換処理が何回行われたかを示す$count
変数に値が格納されます。
したがって、「PHP」が元の文字列に3回現れるため、$count
の値は3になり、この値を利用して該当パターンの出現回数を確認できます。