The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PHP и регулярные выражения"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"PHP и регулярные выражения"  
Сообщение от visitor (ok) on 26-Май-08, 20:32 
Здравствуйте.
Помогите пожалуйста решить след. проблему:
необходимо обработать строку (пример: 1-22 33-44 6-99 и т.д.) регулярным выражением, результаты обработки загнать в переменные, которые будут использованы для поиска.
Если обрабатывать строку 11-22 33-44 вот эти кодом:

if (preg_match("/^(([\d]{1,2})-([\d]{1,2})\s([\d]{1,2})-([\d]{1,2}))*$/", $kv, $out)) {

  echo "out2: $out[2]";
  echo "
";
  echo "out3: $out[3]";
  echo "
";
  echo "out4: $out[4]";
  echo "
";
  echo "out5: $out[5]";  
  echo "
";        
  echo "out6: $out[6]";
  echo "
";
  echo "out7: $out[7]";
  echo "
";
  echo "subject: $kv";
}

то получаю то что нужно:

out2: 11
out3: 22
out4: 33
out5: 44
out6:
out7:
subject: 11-22 33-44

но как составить регулярное выражение чтобы обрабатывать большее кол-во диапазонов и результаты загонять в переменные?

Пробовал по разному - но не получается :(

Заранее спасибо.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PHP и регулярные выражения"  
Сообщение от GD on 27-Май-08, 00:28 
>[оверквотинг удален]
>out6:
>out7:
>subject: 11-22 33-44
>
>но как составить регулярное выражение чтобы обрабатывать большее кол-во диапазонов и результаты
>загонять в переменные?
>
>Пробовал по разному - но не получается :(
>
>Заранее спасибо.

$out = explode('-', $kw)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "PHP и регулярные выражения"  
Сообщение от angra (ok) on 27-Май-08, 05:13 
Если строка именно такая как вы указали, то проще использовать split(может в php по другому называться). Если такие комбинации встречаются вперемешку с шумом типа "asd 11-43 sdffasd), тогда использовать регекс вида \d{1,2}-\d{1,2} с g флагом (если не ошибаюсь в php это делается отдельной функцией типа preg_match_all). В любом случае результат помешается в массив, а не в var1, var2, .... Если хотите можно конечно извратится и создать в виде отдельных переменных, вот только смысла в этом никакого.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру