2016-12-09 3 views
1

мне нужно немного помочь с регулярным выражением, Фро, например у меня есть эти строки:Regex выбрать только цифры от конца строки

  • «Праздники (8)»
  • «Там когда-то была жизнь 26/26 "
  • " Париж могикан No.1 "
  • " Vtipnejší выигрывает 1985 День печати, радио и телевидения "

и мне нужно, чтобы получить число" 8 "" 26 "" 1 ", но нет t "1985", это год не номер детали. Я получил это до сих пор '/(\d+).?$/', который работает для выбора номера, но я не знаю, как удалить строку для preg_replace() функции, поэтому он возвращает только число разыскиваемых.

Edit: Что делать, если я хотел только строки, в наоборот?

+3

[ 'preg_match()'] (http://php.net/manual/en/function.preg-match.php) – jhmckimm

+0

Как отличить годы от других чисел? Кроме того, '8' не совсем в _end_ из the' строки«праздник (8) «'. –

+0

@RuslanOsmanov Ну, последний номер должен быть номер детали, я не могу ралли на 100%, что, к сожалению, но 99% из них строк таким образом, что является большим процентом. И «)», в конце концов я решил «.». или нет? – Matis

ответ

4

Взгляните на preg_match функции, то третий параметр является массивом соответствующих элементов, как вы заключите ваши номера в скобках, вы найдете их там. Чтобы быть более точным, $ [1] содержит номера ссылок mathcing, $ соответствует [0] содержит все выражение согласованной.

+0

кажется, сделать трюк! Благодаря. Тем не менее любопытно, о методе preg_repalce(), если кто хочет идти в ногу с ним. – Matis

+0

возможно preg_replace_callback() может быть удобно, но вам нужно написать функцию обратного вызова для обработки замены – ConstantineUA

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