PHP正規表現における行の先頭と末尾
行の先頭 ^ または 末尾 $ を意味する特別な記号があります。
例を用いてその動作を見てみましょう。
例
この例の検索パターンは次の通りです:文字列
'aaa' を '!' に置き換えるが、それは行の先頭にある場合のみ:
<?php
$str = 'aaa aaa aaa';
$res = preg_replace('#^aaa#', '!', $str);
?>
結果、変数には次の文字列が格納されます:
'! aaa aaa'
例
この例の検索パターンは次の通りです:文字列
'aaa' を '!' に置き換えるが、それは行の末尾にある場合のみ:
<?php
$str = 'aaa aaa aaa';
$res = preg_replace('#aaa$#', '!', $str);
?>
結果、変数には次の文字列が格納されます:
'aaa aaa !'
例
正規表現の先頭に ^ があり、末尾に $ がある場合、それは文字列全体が正規表現に一致するかどうかをチェックしていることになります。
次の例の検索パターンは次の通りです:
文字 'a' が1回以上繰り返され、その文字列全体が '!' に置き換えられるが、それは文字列が 'a' のみで構成されている場合のみ。
<?php
$str = 'aaa';
$res = preg_replace('#^a+$#', '!', $str);
?>
結果、変数には次の文字列が格納されます:
'!'
実践問題
次の文字列があります:
<?php
$str = 'abc def xyz';
?>
最初の文字(アルファベット)の部分文字列を見つける正規表現を書いてください。
次の文字列があります:
<?php
$str = 'abc def xyz';
?>
最後の文字(アルファベット)の部分文字列を見つける正規表現を書いてください。
次の文字列があります:
<?php
$str = '$aaa$ $bbb$ $ccc$';
?>
ダラー記号で囲まれた、最後の文字(アルファベット)の部分文字列を見つける正規表現を書いてください。