Автор Тема: Регулярки  (Прочитано 2508 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vg2k

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярки
« : 03 Августа 2005, 02:27:53 »
Нужна помощь с регулярками, а то не фурычит опять банальная вещь..


Цитировать
   
$str = \'sok 1 sok 2 sok 3 konec\';
preg_match_all(\'/sok(.*?)konec/i\',$str,$out);
print_r($out);
   

В выходящем массиве $out я хочу получить числов 3 из строки (пускай и с пробелами, их потом от-trim-ить легко). Однако получаю 1 sok 2 sok 3, как указать чтобы бралось максимальное удаленное от начала строки совпадение ? А то моя регулярка работала бы хорошо если бы исходная строка была : sok 3 konec 2 konec 1konec ибо жадность квантификатора убираю для последующих символов, а не для начальных . Что делать ?

PS. А то самое дурное пока пришло в голову, типа /([\\ 0-9]{0,3}sok){3}(.*?)konec/i
Однако это больше для частного случае подходит, нежели в целом...
Еще как варинат тут : /([0-9])+\\skonec/    , но это то же не выход.  Тут(в этом топике) я представлял пример строки $str , на самом деле вместо искомой тройки там строка из цифр, букв и спецсимволов... длина строки от 8-20 символов в среднем... нужно нечто более универсальное

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Регулярки
« Ответ #1 : 03 Августа 2005, 13:15:38 »
vg2k
$a  = explode(" ",$str);
$out = $a[(count($a)-1)];

И не изобретать геморрой.
LJ: Backslashed life (rss)

Оффлайн vg2k

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 37
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярки
« Ответ #2 : 04 Августа 2005, 14:46:28 »
CGVictor , вау.. =) вылупил глаза и офигевал долго.
Просто у меня в этом заключалась часть регулярки, поэтому теперь одна половина обрезаеться регуляркой а другая таким незамысловатым методом.

PS. Ты гений ! ;)

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Регулярки
« Ответ #3 : 04 Августа 2005, 16:36:02 »
vg2k
Ничго подобного :)
LJ: Backslashed life (rss)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28