Сопоставить метку времени с preg_match - PullRequest
0 голосов
/ 05 февраля 2012

У меня есть это регулярное выражение прямо сейчас, и оно просто печатает 1: ^[0-9]{10,15}$^. Я хочу посмотреть, есть ли в имени файла временная метка (например, 3843_1328414035.jpg) или нет. Что я не прав?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Похоже, вы используете возвращаемое значение вместо &$matches массива.

Все это взято из руководства :

preg_match () возвращает количество совпадений с шаблоном. Это будет либо 0 раз (без совпадений), либо 1 раз, потому что preg_match () остановит поиск после первого совпадения.

Чтобы получить сопоставленный текст:

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Если совпадения предоставлены, то он заполняется результатами поиска. $ match [0] будет содержать текст, который соответствует полному шаблону, $ match [1] будет иметь текст, который соответствует первому захваченному заключенному в скобки подшаблону и т. д.

0 голосов
/ 05 февраля 2012

вы можете использовать этот оператор preg_match

$matches = array();
preg_match("/(\d{10})/","1234_1328414035.jpg",$matches);
print_r($matches);

или просто проверить, существует ли шаблон

if(preg_match("/(\d{10})/","1234_1328414035.jpg")) {echo "found";}
...