php 正規表現の「^ $」と「\A \z」の違い
作成日:2025-07-11,
更新日:2025-07-11
基本
- 「^ $」は文字列が複数行の場合、各行をそれぞれチェック
- 「\A \z」は文字列が複数行の場合、1行としてチェック
$str = '';
$str .= 'hoge.test';
$str .= "\n";
$str .= 'foo.test';
| 「^ $」 |
preg_match('/^[a-zA-Z0-9.-]+$/', $str)
|
$strの各行に対してチェック |
各行をチェック → それぞれパターンにマッチするので「true」 |
| 「\A \z」 |
preg_match('/\A[a-zA-Z0-9_]+\z/', $str)
|
$strを1行としてチェック |
1行としてチェック →「\n」がパターンにマッチしないため「false」 |
メモ
preg_match('/^[a-zA-Z0-9.-]+$/', $str)
$str = 'hoge.test' . "\n" . 'foo.test';
|
各行パターンにマッチするのでtrue |
$str = 'hoge.te+st' . "\n" . 'foo.test';
|
一つ目がパターンにマッチしないのでfalse |
$str = 'hoge.test' . "\n" . 'foo.te+st';
|
2つ目がパターンにマッチしないのでfalse |
$str = 'hoge.te+st' . "\n" . 'foo.te+st';
|
すべての行でパターンにマッチしないのでfalse |