PHP:
パターンに一致する文字を削除する
How to: (方法)
PHPで文字列から特定のパターンを削除するには、preg_replace
関数が便利です。以下の例を見てみましょう。
<?php
$inputString = "Hello, 123 World! This is a 456 test.";
// \d は数字に匹配するパターンです。
$pattern = '/\d/';
// 空文字列を置き換えることで、数字を削除しています。
$outputString = preg_replace($pattern, '', $inputString);
echo $outputString; // "Hello, World! This is a test."
?>
preg_replace
はマッチしたすべての部分を置き換えます。パターンをきちんと指定して使いましょう。
Deep Dive (深掘り)
文字の削除は、イテレーティブな文字処理の最も基本的なタイプの一つです。初期の文字列操作関数の中でも、str_replace
やereg_replace
(後に非推奨とされました)などがありました。
preg_replace
は、より強力な “Perl互換正規表現” (PCRE) をサポートしています。PCREは1980年代後半にPerlで導入されたもので、その強力なパターンマッチングと操作能力により、多くの言語が取り入れています。
代替手段として、シンプルな文字列削除には str_replace
や str_ireplace
(大文字小文字を無視する)が使えますが、パターンマッチングには適していません。
実装の観点からは、preg_replace
関数は内部でコンパイル済みの正規表現をキャッシュし、パフォーマンスを高めています。しかし、正規表現は複雑になる傾向があるため、シンプルな置換には適さないこともあります。バランスを見極めましょう。
See Also (参照)
- PHP: preg_replace - Manual
- PHP: Regular Expressions (Perl-Compatible) - Manual
- PHP: str_replace - Manual
これらのリンクから、さらなる例や詳細なドキュメントを見ることができます。パターンマッチングと文字列処理について、しっかりと学びましょう。