文字列に含まれるすべての日付を一致させようとしています。これが関数です
$description = "1999 2008 1998";
if(preg_match("/[12][0-9]{3}/", $description, $matches)){
print_r($matches);
}
問題は、最初の日付だけが返されることです。つまり1999
、実際にはすべての日付を一致させたいのです。
正規表現で何を変更する必要がありますか?
これのことですか?
<?php
$description = "1999 2008 1998";
if(preg_match_all("/[12][0-9]{3}/", $description, $matches)){
print_r($matches);
}
唯一の違いはpreg_match_all
代わりですpreg_match
。
<?php
$description = "1999 2008 1998";
$a = Array(preg_match_all('/(\d{4})*/', $description, $matches));
$count = count($matches);
for ($i = 0; $i <= $count + 2; $i++) {
echo $matches[0][$i] . "\n";
}
?>
出力
1999
2008
1998