重複の可能性:
正規表現で ^ と $ はどういう意味ですか?
私は正規表現がまったく得意ではありません。正規表現が非常に重要であることは知っていますが、勉強する時間がありませんでした。とにかく、これらの文字列の中で、次のことを確認しようとしています:
MAX_AGE_60
MAX_AGE_80
...
MAX_AGE_X
より一般的X
には ainteger
であり、少なくとも 1 つの一致が見つかり、番号が取得されX
ます。PHPドキュメントの例に従って、私はこれを書きました:
// Starts and ends with the literal 'MAX_AGE_' followed by a group that is a
// number with at least one digit. Case insensitive
$pattern = '/^MAX_AGE_(?P<max>\d+)$/i';
$test = 'MAX_AGE_80';
$matches = array();
preg_match($pattern, $test, $matches);
var_dump($matches);
結果は間違っています (驚き...):
array (size=0)
empty
開始/終了区切り文字 (^
および$
) を削除すると、正しい結果が得られます。
array (size=3)
0 => string 'MAX_AGE_80' (length=10)
'max' => string '80' (length=2)
1 => string '80' (length=2)
では、文字列がそのパターンで開始および終了する必要があることを強制できないのはなぜですか? そして、結果の配列をどのように解釈する必要がありますか? 私はインデックスを意味0
し、1
そしてmax
?