- 2007-04-08
- php
そういう時は普通、\zを使うんだと思う(元記事のコメント欄でも言及されてるみたいだけど)。
- preg_matchの注意点 - PHPプロ!ニュース
Holes in most preg_match() filters - PHP Security Blog
<?php $str_list = array( "OK" => "1234:XYZ", "OK_EOL" => "1234:XYZ" . PHP_EOL, "NG_1" => "1234:XYZ" . PHP_EOL . "aaa" ); foreach ($str_list as $k => $v) { if (preg_match("/^[0-9]+:[X-Z]+\z/", $v)) { echo $k . " => " . $v; echo PHP_EOL . "----------------" . PHP_EOL; } } ?>
という話を書こうと思ったらPerl6では\Aと\zは廃止だそうです。
^と$が\Aと\z相当の動作をするらしい。