Вы, вероятно, ошибаетесь своим шаблоном:
/[0-9]*/
*
сигнализирует о том, что вы хотите сопоставить ноль или более символов. preg_match
делает это, он успешно находит ноль класса символов [0-9]
и возвращает вам пустую строку.
Вы могли бы иметь в виду это:
/[0-9]+/
+
сигнализирует, что вы хотите сопоставить одно или несколько.
Regexpal даст вам все совпадения, а не только первый. См. С preg_match_all
: Демо .