2015-04-27 3 views
0

У меня есть текст, как этот: The cat was born on 1980 and lives ...PHP - preg_match() слово после другого слова

Так я хочу, чтобы получить возраст кошки с регулярным выражением (текст может иметь более 1 возникновение ряда с 4-х цифр).

Я пробовал это preg_match('/born on [0-9]{4}/', $text, $matches), но результат: array('born on 1980'). Я хочу игнорировать все до года.

Демо: http://www.phpliveregex.com/p/aYl

ответ

0

Group значение, которое вы хотите, то это будет первый элемент массива.

$text = 'The cat was born on 1980 and lives ...'; 
preg_match('/born on ([0-9]{4})/', $text, $matches); 
echo $matches[1]; 

Выход:

+0

Группировка значение дает массив с 2 ст. Любой способ получить массив только с 1 iteam (год)? – Christopher

+1

Первое совпадение всегда совпадает со всем регулярным выражением, а начиная со второй позиции массива (элемент 1) - любые совпадения, сделанные из группировки круглых скобок. (Вышеприведенный код верен, но совпадение интересов не является первым элементом массива.) –

+0

Массив имеет два или более значений. Первый - это все, что нашел второе и т. Д., Сгруппированные значения. Запустите то, что я вам дал, и он должен работать. – chris85

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