1

文字列に含まれるすべての日付を一致させようとしています。これが関数です

$description = "1999 2008 1998";

if(preg_match("/[12][0-9]{3}/", $description, $matches)){
   print_r($matches);
}

問題は、最初の日付だけが返されることです。つまり1999、実際にはすべての日付を一致させたいのです。

正規表現で何を変更する必要がありますか?

4

2 に答える 2

2

これのことですか?

<?php
$description = "1999 2008 1998";

if(preg_match_all("/[12][0-9]{3}/", $description, $matches)){
   print_r($matches);
}

唯一の違いはpreg_match_all代わりですpreg_match

于 2012-10-13T00:08:01.320 に答える
0
<?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
于 2012-10-13T01:44:29.377 に答える