Исключение основного шаблона из результата в regexp

rudik

Developer
Исключение основного шаблона из результата в regexp

Возможно ли сделать так чтоб preg_match в найденных комбинациях не возвращал Всю строку, которая у меня указана в регулярном выражении?

К примеру есть preg_match("/test([0-9]+)/", "test2004", $matches), так вот массив $matches будет иметь вид
array('test20004', 2004)
Как сделать, чтоб возвращался только array(2004)

Скобки типа (?: ) почему-то не помогают. :(
 

SiMM

Новичок
Re: Исключение основного шаблона из результата в regexp

Автор оригинала: rudik
К примеру есть preg_match("/test([0-9]+)/", "test2004", $matches), так вот массив $matches будет иметь вид
array('test20004', 2004)
Как сделать, чтоб возвращался только array(2004)
Написать после регулярника банальный [m]unset[/m]($matches[0]) - чем такой вариант не устраивает?
 

rudik

Developer
Да, проблема не в том как от него избавиться, а в том, чтоб знать есть такая фича в регулярных выражениях или нет.

Знание - сила.
 

Макс

Старожил PHPClub
rudik
в данном случае тебе поможет позиционная проверка:
/(?<=test)[0-9]+/
 
Сверху