Автор Тема: Выбор по шаблону  (Прочитано 3468 раз)

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

Оффлайн webser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.webser.ru
Выбор по шаблону
« : 18 Ноября 2008, 15:47:16 »
Возникла задача разобрать строку по определенным правилам.
Например, разбить
$articul = "11/3-0055"  на 11 (до /) и 3 (между / и - )
Как сделать первое - нашел -
$tmp_articul = ($articul=~/^(\\w+)\\//)[0]; # выделение части из артикула для идентификации
print "articul :::: ", $articul,"   |     часть :::: ", $tmp_articul,"
";

получаем $tmp_articul = 11

А как достать комбинацию символов между / и - . т.е. 3 - никак. И так, и эдак пробовал, в инете и книги смотрел - не получается.
Помогите получить выражение.

Заранее благодарен.

P.S. Может можно сразу в массив получить три переменные - 11, 3 и 0055

Оффлайн APL

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 344
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.aerozone.ru
Выбор по шаблону
« Ответ #1 : 18 Ноября 2008, 16:24:49 »
@a = ($articul=~/^(\\w+)\\/(\\w+)\\-(\\w+)/) ;
print join \', \', @a;
« Последнее редактирование: 18 Ноября 2008, 16:49:58 от APL »

Оффлайн webser

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.webser.ru
Выбор по шаблону
« Ответ #2 : 18 Ноября 2008, 17:57:38 »
Спасибо...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Выбор по шаблону
« Ответ #3 : 18 Ноября 2008, 21:11:06 »
(split "/-",$_)[0,1]

 

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