PHPにおける正規表現入門
正規表現は、複雑な検索と置換のためのコマンドです。 これらは非常に興味深いことを可能にしますが、残念ながら習得はかなり難しいものです。
PHPには正規表現を扱うためのいくつかの関数があります。
私たちはその例としてpreg_replaceから学び始めます。
この関数は、第1パラメータに「何を」、第2パラメータに「何に」置き換えるかを取り、
第3パラメータに置き換えを行う文字列を取ります:
<?php
preg_replace(何を置き換えるか, 何に置き換えるか, 文字列);
?>
この時、第1パラメータとして関数が受け取るのは単純な文字列ではなく、
シャープ記号#の内側にコマンドのセットが配置された文字列である正規表現です。
これらのシャープ記号は正規表現のデリミタ(区切り文字)と呼ばれます。
デリミタの後には、正規表現の全体的なプロパティを変更するコマンドである修飾子を書くことができます。
正規表現自体は、2つのタイプの文字で構成されています:それ自身を表す文字と、 特殊文字と呼ばれるコマンド文字です。
文字と数字はそれ自身を表します。次の例では、正規表現を使用して文字'a'を'!'に置き換えます:
<?php
preg_replace('#a#', '!', 'bab'); // 'b!b'を返す
?>
一方、ドットは特殊文字であり、任意の1文字を表します。次の例では、
次のようなパターンで文字列を見つけます:文字'x'、次に任意の1文字、そして再び文字'x':
<?php
preg_replace('#x.x#', '!', 'xax eee'); // '! eee'を返す
?>
次の文字列が与えられています:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
パターン:文字'a'、任意の1文字、文字'b'に従って、
文字列'ahb'、'acb'、'aeb'を見つける正規表現を書いてください。
次の文字列が与えられています:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
パターン:文字'a'、任意の2文字、文字'b'に従って、
文字列'aeeb'、'adcb'、'axeb'を見つける正規表現を書いてください。