Поиск элементов внутри элементов

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
355
Благодарностей
40
Баллы
28
Добрый день!

Подскажите пожалуйста, есть страница на доске обьявлений, там таблица с описанием товара
Код:
                        <tr class="field-varvus">
                <td class="label">Цвет:</td>
                <td class="field"><span class="value">темно серый  мет.</span></td>
            </tr>
                        <tr class="field-tehasetahis">
                <td class="label">номер:</td>
                <td class="field"><span class="value">W793222233149</span></td>
            </tr>
мне нужно через ДОМ модель регуляркой вырезать W793222233149
как видно классы одинаковые, то есть нужно парсить так что бы в регулярке было уникальное значение
<tr class="field-tehasetahis"> но так регулярка не составляется

подскажите как составить регулярку?
использую такую - (?<=<tr\ class="field-tehasetahis"><td\ class="label">номер:</td><td\ class="field"><span\ class="value">).* но ничего не находит, не находит полагаю потому, что <tr class="field-tehasetahis"> и <td class="label">номер:</td> находятся на разных строках элементы внутри элемента

знаю так же, что что нужный мне номер всегда состоит строго из 17 символов (цифры и буквы)



либо говорят что лучший поиск осуществить можно через C# но я его не знаю, и еще ниразу не подключал его в кубиках
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
35
Баллы
18
знаю так же, что что нужный мне номер всегда состоит строго из 17 символов (цифры и буквы)
В примере 13 символов, если все таки нужно 17, то замените значение в фигурных скобках.
Код:
(?<=<span\ class="value">)\w{13}(?=</span>)
 
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
355
Благодарностей
40
Баллы
28
или попробовать взять код всей страницы, конвертнуть просто в текст, и по тексту уже сделать поиск
В примере 13 символов, если все таки нужно 17, то замените значение в фигурных скобках.
Код:
(?<=<span\ class="value">)\w{13}(?=</span>)
супер, спасибо, сработало =)

а как тогда сделать теперь следующее? нужно тоже самое сделать, вырезать из этой таблицы значение кода 496XYZ
Он всегда строго из 6 символов (3 цифры и 3 буквы на латинице)
если использовать такую регулярку (?<=<span\ class="value">)\w{6}(?=</span>)
то он вырежет из всей таблицы почти все значения к примеру "легков" "Бензин" ну и так далее, в том числе будет нужный мне код 496XYZ, а нужно вырезать только его либо ничего =)
Код:
            <tbody><tr class="field-liik">
                <td class="label">Тип:</td>
                <td class="field"><span class="value">легковой автомобиль</span></td>
            </tr>
                        <tr class="field-keretyyp">
                <td class="label">Тип кузова:</td>
                <td class="field"><span class="value">седан</span></td>
            </tr>
                        <tr class="field-month_and_year">
                <td class="label">Первичная рег:</td>
                <td class="field"><span class="value">04/2001</span></td>
            </tr>
                        <tr class="field-mootorvoimsus">
                <td class="label">Двигатель:</td>
                <td class="field"><span class="value">1.8 (110 kW)</span></td>
            </tr>
                        <tr class="field-kytus">
                <td class="label">Топливо:</td>
                <td class="field"><span class="value">бензин</span></td>
            </tr>
                        <tr class="field-labisoit">
                <td class="label">Показ одометра:</td>
                <td class="field"><span class="value">255&nbsp;000 km</span></td>
            </tr>
                        <tr class="field-vedavsild">
                <td class="label">Ведущий мост:</td>
                <td class="field"><span class="value">передний привод</span></td>
            </tr>
                        <tr class="field-kaigukast_kaikudega">
                <td class="label">Коробка передач:</td>
                <td class="field"><span class="value">механическая КП</span></td>
            </tr>
                        <tr class="field-varvus">
                <td class="label">Цвет:</td>
                <td class="field"><span class="value">темно-синий</span></td>
            </tr>
                        <tr class="field-reg_nr">
                <td class="label">КОД:</td>
                <td class="field"><span class="value">496XYZ</span></td>
            </tr>
         
     </tbody>
Еще раз большое спасибо
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
35
Баллы
18
Код:
(?<=<span\ class="value">)\d{3}[A-Z]{3}(?=</span>)
 
  • Спасибо
Реакции: JanCarlo

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
355
Благодарностей
40
Баллы
28
Код:
(?<=<span\ class="value">)\d{3}[A-Z]{3}(?=</span>)
спасибо тебе огромное Человек! все сработало, а то я уже пару часов думал как вырезать эти сраные данные из таблицы с общими значениями, я как бы логику по другому делал, у меня с начала таблицы кубики вырезали данные по очереди с верху вниз и заносились в переменные, а переменные в нужные столбцы в к эксель, но на разных обьявлениях некоторые строки не указаны и получается что данные сбиты по строкам, так получалось что в строке ВИД топлива у меня был к примеру ЦВЕТ или чё то другое, пришлось по другому вырезать данные :D

еще раз спасибо, надо учиться регулярки составлять, для меня это темный лес пока что =(
 
  • Спасибо
Реакции: etyipin

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 389
Благодарностей
5 447
Баллы
113
В конструкторе есть галка, перенос по строкам. Так же можно сделать в конструкторе регулярку которая будет находить все теги и через экшн замена эти теги можно менять на пробелы. Останется потом только заменить множество пробелов на один.
 
  • Спасибо
Реакции: JanCarlo

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)