2012-02-05 2 views
0

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

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

+0

Что второй ''^для? – deceze

+0

У меня возникла ошибка, если у меня не было в конце. – Erik

+1

Пожалуйста, замените '^' на '/'. Это сбивает с толку, потому что '^' обычно используется для обозначения «начала», но вы используете его как разделитель – nachito

ответ

0

вы можете иметь это 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";} 
1

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

Все это взято из manual:

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

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

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

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

+0

Oh. Окей. Что я должен использовать для функции, чтобы сделать это возможным? :) – Erik

+0

Отредактировано для добавления предлагаемого решения. – Grilse

Смежные вопросы