2php : 正規表現・パターン修正子

 

パターン修正子とは

パターン修正子とは、正規表現パターンで使用可能な修飾子を得る、ということを指しています。ですが、正規表現ってなにか、簡単に解説できればと思います。

パターン修正子

パターン修正子は先ほど述べたものですが、正規表現パターンで使用可能な修飾子を得るためのものです。よく分からない方もおられると思いますが、簡単にいうと次の様なものです。

<?php
$var = "Sakura Tamakichi Omura";
$pattern = "/tamakichi/i";
$replacement = "Hiropon";
print preg_replace($pattern,$replacement,$var);

//Sakura Hiropon Omura
?>

上部のiが修飾子といいます。以下に使う修飾子を紹介していきます。

i 修飾子

この修飾子が設定されている場合、パターンの中の文字は 大文字にも小文字にもマッチします。もう一度上記のサンプルを見てください。

<?php
$var = "Sakura TamaKicHi Omura";
$pattern = "/tamakichi/i";//←ここに注目
$replacement = "Hiropon";
print preg_replace($pattern,$replacement,$var);

//Sakura Hiropon Omura(結果)
?>

変数$varには【Sakura TamaKicHi Omura】と紹介されていました。しかし、$pattern で設定している文字は 小文字のtamakichiとして指定されています。ですが、修飾子iを使うことで、大文字小文字関係なくマッチさせることができます。

m 修飾子

m 修飾子の鍵となるのは、行の頭です。変数の中には複数行にまたがっている場合があります。その際、二行目の頭の文字を変更したい場合は【/^広瀬/m】というように設定する必要があります。他の行にも【広瀬】とあった場合は置換したいパターンがあっても、変換されません。なお、以下の【^】は、その行の最初にマッチしたものを変更することを示しています。逆に【$】の場合は、該当する行の最後の文字がヒットします。(ソース | 結果)

ただし、この修飾子 m がなくてもこの場合はきちんと置換されます。PHPの場合、正規表現をする際、自動的に m が付けられるものであると覚えておいてください。 (ソース | 結果)