Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите составить регулярку
Задача не из легких: получить числовой индекс модели автомобиля (1111, 2110, 3110, 2170) из кода ссылки, а при отсутствии: текстовое название (Largus, Granta и т.д.)
У всех ссылок общее одно: название класса ссылок (au-elements__title__link_table).
Как это реализовать? Я пробовал, но получаются такие велосипеды, что конструкция ДВС по сравнению с ними кажется пустяком.
Пробовал вытянуть только числовой индекс, но как быть, если вместо индекса только название (например, Vesta):
Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
И еще вопрос: допустим, мы выдернули текст между тегами <a></a>, но не знаем - есть там цифровой индекс модели автомобиля или только текстовый. Так вот, правильным ли будет обработка этого текста двумя регулярками: сначала проверка на наличие цифр, а если массив на выходе пустой, то ищем текстовый индекс модели, или это все можно сделать в одном шаблоне?
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Itan пишет:
или это все можно сделать в одном шаблоне?
Можно и в одном - используйте побитовый оператор "или" | внутри вашего шаблона.
Fart
Отправлено: 25 Сентября, 2016 - 12:10:36
Посетитель
Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016
Помог: 10 раз(а)
перед тем как составить регулярку - нужно знать какие будут данные. если по 1 типу данных ковырять.. то тут кучу регулярок можно накаптить... а оно тебе надо? выложи список строчек данных которые будут и помощь не заставит себя ждать. ну и конечно какие данные нужно найти
Строитель
Отправлено: 25 Сентября, 2016 - 12:12:14
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008
Помог: 0 раз(а)
Всем спасибо, разобрался. Наименование модели вытягивается из адреса ссылки, а не из текста ссылки, как я хотел изначально. Далее обработка: если цифр нет, берем слово. (Добавление)
Я прям чувствую, как сгорают нервные клетки, но не подскажите ли вы, в чем ошибка?
Работает, например, 21941_kalina_ii_universal превращается в 21941, а granta так и остается, всё как и задумано. Но есть одно но. Если этой регулярке передать строку vaz_2110, то она и вернет vaz_2110, хотя по идее, должна вернуть 2110. Как быть?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.