Помогите составить регулярку или подправить C# код

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Если можете, прошу помочь в моей проблеме.

Спаршиваю с сайта строки в таком виде (тут 3 строки дано, для удобства разделил пустой строкой)

<span class="boldClass t_bold">BY – RU</span><br><a title="674 км" target="_blank" class="sm1" href="/useful/distance/?action=submited&amp;reserv=on&amp;country_out=on&amp;marh_type=2&amp;town1=Могилев; BY; 132&amp;town2=Орехово-Зуево; RU; 82">маршрут</a></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>10.03–10.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Могилев</span><span>(Могилевская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Орехово-Зуево</span><span>(Московская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тнп, до 15т, от 82м3</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"> б/н</span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="14989245525" style="background-image: url('//media.domen.ru/upload/14989245525/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div title="Профиль проверен" class="profile-approved"></div><div><a target="_blank" href="//domen.ru/user/14989245525">Стрим Вижен, ООО</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=14989245525">5</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=14989245525">0</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/14989245525">3.65</a></div><div><span id="uiFirmContFaceLink19484" class="contactSpan uiContsViewContactSpan">Ольга</span></div><div id="uiFirmContScroolBlock19484" class="uiFirmContScroolBlock"><div>(17)2026127</div><div>(29)6454756</div>

<span class="boldClass t_bold">BY – RU</span><br><a title="651 км" target="_blank" class="sm1" href="/useful/distance/?action=submited&amp;reserv=on&amp;country_out=on&amp;marh_type=2&amp;town1=Минск; BY; 131&amp;town2=Кондрово; RU; 63">маршрут</a></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>04.03–05.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Минск</span><span>(Минская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Кондрово</span><span>(Калужская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>ТНП, 20т, 82м3, загрузка боковая, задняя</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"></span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="12531788045" style="background-image: url('//media.domen.ru/upload/12531788045/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div><a target="_blank" href="//domen.ru/user/12531788045">КредоАвтоТрейд, ЧТУП</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=12531788045">6</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=12531788045">4</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/12531788045">1.5</a></div><div><span id="uiFirmContFaceLink49794" class="contactSpan uiContsViewContactSpan">Алла</span></div><div id="uiFirmContScroolBlock49794" class="uiFirmContScroolBlock"><div>(29)3552670</div>

<span class="boldClass t_bold">BY – RU</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>05.03–09.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Пуховичи</span><span>(Минская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Люберцы</span><span>(Московская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>картон, 20т, 82м3, загрузка боковая, задняя</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"></span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="12531788045" style="background-image: url('//media.domen.ru/upload/12531788045/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div><a target="_blank" href="//domen.ru/user/12531788045">КредоАвтоТрейд, ЧТУП</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=12531788045">6</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=12531788045">4</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/12531788045">1.5</a></div><div><span id="uiFirmContFaceLink49795" class="contactSpan uiContsViewContactSpan">Алла</span></div><div id="uiFirmContScroolBlock49795" class="uiFirmContScroolBlock"><div>(29)3552670</div>
Жирным выделил интересующие меня значения.

На выходе хочу получить строки похожего вида:
BY – RU;674 км;10.03–10.03;тент;Могилев;(Могилевская обл.);Орехово-Зуево;Московская обл.);тнп, до 15т, от 82м3;б/н;Стрим Вижен, ООО;отзывы:;5;0;балл:;3.65;Ольга;(17)2026127;(29)6454756
BY – RU;651 км;04.03–05.03;тент;Минск;(Минская обл.);Кондрово;(Калужская обл.);ТНП, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;отзывы:;6;4;балл:;1.5;Алла;(29)3552670
BY – RU;05.03–09.03;тент;Пуховичи;(Минская обл.);Люберцы;(Московская обл.);картон, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;отзывы:;6;4;балл:;1.5;Алла;(29)3552670
До этого пробовал использовать данный C# код, но им удаляется и второе нужное мне значение (674 км в первой строке, 651 км во второй строке, в третьей строке оно отсутствует) + мне нужно иметь разделитель ";" что бы вставить строки в таблицу для отбора необходимых столбцов, а удаление тегов давало различное число пробелов между необходимыми значениями.
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Вот регулярка
C#:
</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>
 
  • Спасибо
Реакции: Malchishka

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Вот регулярка
C#:
</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>
Большое спасибо, за то, что откликнулись на мою просьбу, но не могли бы вы пояснить куда конкретно вставляется данная регулярка? Если в экшен Regex, то после её работы остаются одни тэги, если так
Код:
string Ishodniy_kod = project.Variables["Ishodniy_kod"].Value;
string regexIshodniy_kod = System.Text.RegularExpressions.Regex.Replace(Ishodniy_kod, @"</?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)/?>", ";");
return regexIshodniy_kod;
то выскакивают ошибки. Пробовал по разному, но что-то лыжи не едут...
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Код:
/?\\w+((\\s+\\w+(\\s*=\\s*(?:\".*?\"|'.*?'|[^'\">\\s]+))?)+\\s*|\\s*)/?>
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Последнее редактирование:

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
В принципе, что бы не городить огород, мне бы вполне подошёл вариант более простой реализации.

Нужно выпарсить из кода километраж (674 км в первой строке, 651 км во второй строке, в третьей строке оно отсутствует), а остальные теги просто удалить (как-то так <.*?>), что бы остался только текст между тегами, а вместо тегов либо пробелы, либо ";".
Но главное, чтобы километраж шёл в той же строке из которой выпаршивается, а не записывался куда-то отдельным значением.
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Вопрос закрыт.
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Всё таки не получается комфортной работы с костылями без правильной регулярки в C# или Regex. Прошу помочь за вознаграждение либо смену аватарки на фото одного из моих трёх котов)))

Спаршиваю с сайта строки в таком виде (тут 3 строки дано, для удобства разделил пустой строкой)
<span class="boldClass t_bold">BY – RU</span><br><a title="674 км" target="_blank" class="sm1" href="/useful/distance/?action=submited&amp;reserv=on&amp;country_out=on&amp;marh_type=2&amp;town1=Могилев; BY; 132&amp;town2=Орехово-Зуево; RU; 82">маршрут</a></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>10.03–10.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Могилев</span><span>(Могилевская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Орехово-Зуево</span><span>(Московская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тнп, до 15т, от 82м3</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t">20.000, б/н</span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="14989245525" style="background-image: url('//media.domen.ru/upload/14989245525/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div title="Профиль проверен" class="profile-approved"></div><div><a target="_blank" href="//domen.ru/user/14989245525">Стрим Вижен, ООО</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=14989245525">5</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=14989245525">0</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/14989245525">3.65</a></div><div><span id="uiFirmContFaceLink19484" class="contactSpan uiContsViewContactSpan">Ольга</span></div><div id="uiFirmContScroolBlock19484" class="uiFirmContScroolBlock"><div>+7(920)3174371</div><div>(29)6454756</div>

<span class="boldClass t_bold">BY – RU</span><br><a title="651 км" target="_blank" class="sm1" href="/useful/distance/?action=submited&amp;reserv=on&amp;country_out=on&amp;marh_type=2&amp;town1=Минск; BY; 131&amp;town2=Кондрово; RU; 63">маршрут</a></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>04.03–05.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Минск</span><span>(Минская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Кондрово</span><span>(Калужская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>ТНП, 20т, 82м3, загрузка боковая, задняя</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"></span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="12531788045" style="background-image: url('//media.domen.ru/upload/12531788045/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div><a target="_blank" href="//domen.ru/user/12531788045">КредоАвтоТрейд, ЧТУП</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=12531788045">6</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=12531788045">4</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/12531788045">1.5</a></div><div><span id="uiFirmContFaceLink49794" class="contactSpan uiContsViewContactSpan">Алла</span></div><div id="uiFirmContScroolBlock49794" class="uiFirmContScroolBlock"><div>(29)3552670</div>

<span class="boldClass t_bold">BY – RU</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>05.03–09.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Пуховичи</span><span>(Минская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Люберцы</span><span>(Московская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>картон, 20т, 82м3, загрузка боковая, задняя</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"></span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="12531788045" style="background-image: url('//media.domen.ru/upload/12531788045/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div><a target="_blank" href="//domen.ru/user/12531788045">КредоАвтоТрейд, ЧТУП</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=12531788045">6</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=12531788045">4</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/12531788045">1.5</a></div><div><span id="uiFirmContFaceLink49795" class="contactSpan uiContsViewContactSpan">Алла</span></div><div id="uiFirmContScroolBlock49795" class="uiFirmContScroolBlock"><div>(29)3552670</div>
Жирным выделил интересующие меня значения.

На выходе хочу получать строки похожего вида:
674;10.03–10.03;Могилев;(Могилевская обл.);Орехово-Зуево;(Московская обл.);тнп, до 15т, от 82м3;20.000, б/н;Стрим Вижен, ООО;(17)2026127;(29)6454756
651;04.03–05.03;Минск;(Минская обл.);Кондрово;(Калужская обл.);ТНП, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
05.03–09.03;Пуховичи;(Минская обл.);Люберцы;(Московская обл.);картон, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
Собственно не критично, что бы стояла ; между значениями, можно тэги заменить на пробелы, дальше я сам заменю их на ;
Главное, что бы выпаршивало значения выделенное жирным и не сбивалось, если какого-то значения нет.
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Всё таки не получается комфортной работы с костылями без правильной регулярки в C# или Regex. Прошу помочь за вознаграждение либо смену аватарки на фото одного из моих трёх котов)))

Спаршиваю с сайта строки в таком виде (тут 3 строки дано, для удобства разделил пустой строкой)


Жирным выделил интересующие меня значения.

На выходе хочу получать строки похожего вида:

Собственно не критично, что бы стояла ; между значениями, можно тэги заменить на пробелы, дальше я сам заменю их на ;
Главное, что бы выпаршивало значения выделенное жирным и не сбивалось, если какого-то значения нет.
Покажи источник откуда тянуть. Можно и в личку.
 

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
Всё таки не получается комфортной работы с костылями без правильной регулярки в C# или Regex. Прошу помочь за вознаграждение либо смену аватарки на фото одного из моих трёх котов)))

Спаршиваю с сайта строки в таком виде (тут 3 строки дано, для удобства разделил пустой строкой)


Жирным выделил интересующие меня значения.

На выходе хочу получать строки похожего вида:

Собственно не критично, что бы стояла ; между значениями, можно тэги заменить на пробелы, дальше я сам заменю их на ;
Главное, что бы выпаршивало значения выделенное жирным и не сбивалось, если какого-то значения нет.
посмотри я вот так делаю ,на примере одной строки
 

Вложения

  • Спасибо
Реакции: Malchishka

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
только сначало км идут а потом BY-RU
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
только сначало км идут а потом BY-RU
Спасибо, BY-RU не проблема, регуляркой вырезается, а вот это "отзывы:;5;/;0;балл:;3.65;Ольга;" проблема, т.к. различных комбинаций оценок отзывов и имён контактов бесконечное множество и вырезать их регуляркой я уже заколебался, т.к. список исключений ростёт, а их меньше не становится. Поэтому я хочу как-то вместо этого:
674 км;BY – RU;маршрут;10.03–10.03;тент;Могилев;(Могилевская обл.);Орехово-Зуево;(Московская обл.);тнп, до 15т, от 82м3;20.000, б/н;Стрим Вижен, ООО;отзывы:;5;/;0;балл:;3.65;Ольга;+7(920)3174371;(29)6454756;
получать вот это
674 км;BY – RU;маршрут;10.03–10.03;тент;Могилев;(Могилевская обл.);Орехово-Зуево;(Московская обл.);тнп, до 15т, от 82м3;20.000, б/н;Стрим Вижен, ООО;+7(920)3174371;(29)6454756;
Остальное не нужное вырежу регуляркой.

Выше, там где я обозначал жирным нужные значения видно, что я выделял.

budora, не могу показать источник, т.к. это платная версия сайта и бесплатно это вытянуть никак нельзя.
 

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
(?<=>)[\w():– -\.,]+?(?=<)|(?<=title=")\d+?\ км

ту т две части (?<=>)[\w():– -\.,]+?(?=<) - берет все что между тегами (я так понял вам это все и надо)
и (?<=title=")\d+?\ км --- берем ххх км
 
  • Спасибо
Реакции: Malchishka

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
  • Спасибо
Реакции: Malchishka

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
(?<=>)[\w():– -\.,]+?(?=<)|(?<=title=")\d+?\ км

ту т две части (?<=>)[\w():– -\.,]+?(?=<) - берет все что между тегами (я так понял вам это все и надо)
и (?<=title=")\d+?\ км --- берем ххх км
Спасибо, что откликнулись, но, к сожалению, не совсем то. Между названием компании и телефонами идёт информация, которую я хочу исключить. Т.к. эта информация у разных компаний разная и к тому же часто меняется - я не могу вырезать её регуляркой по точному вхождению, т.к. вариаций безумно много, поэтому мне хотелось бы как-то исключить этот блок полностью.

Вот для примера я выделил нужную мне информацию жирным, не нужную, но не критичную - подчёркиванием, критично не нужную информацию - зачеркнул.
<span class="boldClass t_bold">BY – RU</span><br><a title="651 км" target="_blank" class="sm1" href="/useful/distance/?action=submited&amp;reserv=on&amp;country_out=on&amp;marh_type=2&amp;town1=Минск; BY; 131&amp;town2=Кондрово; RU; 63">маршрут</a></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>05.03–09.03</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>тент</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Пуховичи</span><span>(Минская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="myPredlTownLine boldClass t_bold">Люберцы</span><span>(Московская обл.)</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span>картон, 20т, 82м3, загрузка боковая, задняя</span></td><td title="Просмотреть заявку" class="uiPredlClickableCell predlInfo"><span class="t"></span></td><td><table class="uiFirmContRootTable"><tbody><tr><td class="uiFirmContLogoCell"><div refid="12531788045" style="background-image: url('//media.domen.ru/upload/12531788045/logo/logo40x40_def.jpg');"></div></td><td class="uiFirmContInfoCell t"><div><a target="_blank" href="//domen.ru/user/12531788045">КредоАвтоТрейд, ЧТУП</a></div><div class="uiFirmContRaitingLine"><span>отзывы:</span><a target="_blank" class="positiveRespCnt" href="/reliability_zone/search_responses/?postFilter=PositiveOnly&amp;firmToId=12531788045">6</a><span>/</span><a target="_blank" class="negativeRespCnt" href="/reliability_zone/search_responses/?postFilter=NegativeOnly&amp;firmToId=12531788045">4</a><span>балл:</span><a target="_blank" class="boldClass" href="/reliability_zone/firm_raiting/12531788045">1.5</a></div><div><span id="uiFirmContFaceLink49795" class="contactSpan uiContsViewContactSpan">Алла</span></div><div id="uiFirmContScroolBlock49795" class="uiFirmContScroolBlock"><div>(29)3552670</div>
Я просто через xpatch проще будет
Я извиняюсь, xpatch - это такой язык программирования? Его можно использовать в шаблонах зенки?
 
Последнее редактирование:

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
Между названием компании и телефонами идёт информация, которую я хочу исключить.
ну тут можно применить такой вот костыль:
если эти данные есть всегда - просто удалите не нужные жанные потом из строки
(?<=(;|^)).*?(?=(;$)) - заменить допустим 5 совпадение на .... пустую строку

как то так ))
 
  • Спасибо
Реакции: Malchishka

wizard

Client
Регистрация
04.10.2011
Сообщения
1 004
Благодарностей
632
Баллы
113
вообще как я понял там таблица и она имеет постоянное количество столбцов ...
я бы парсил каждую ячейку и в строку ----;----;---;
а потом бы брал только те данные что нужны например
(?<=(;|^)).*?(?=(;$)) совпадение №2 - название фирмы , совпадение №7 - адрес и т.п.
 
  • Спасибо
Реакции: Malchishka

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
  • Спасибо
Реакции: Malchishka

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
вообще как я понял там таблица и она имеет постоянное количество столбцов ...
я бы парсил каждую ячейку и в строку ----;----;---;
а потом бы брал только те данные что нужны например
(?<=(;|^)).*?(?=(;$)) совпадение №2 - название фирмы , совпадение №7 - адрес и т.п.
Количество данных разнится, кто-то указывает километраж, кто-то нет, у кого-то 1 телефон, у кого-то 3, кто-то указывает оплату, кто-то пропускает этот момент. В этом и проблема брать нужные данные из ячеек таблицы - если где-то пропущена какая-то информация, наполняемость ячеек сбивается и всё. Поэтому я паршу в список построчно, таблицу задействовать нету смысла.
674;10.03–10.03;Могилев;(Могилевская обл.);Орехово-Зуево;(Московская обл.);тнп, до 15т, от 82м3;20.000, б/н;Стрим Вижен, ООО;(17)2026127;(29)6454756
651;04.03–05.03;Минск;(Минская обл.);Кондрово;(Калужская обл.);ТНП, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
05.03–09.03;Пуховичи;(Минская обл.);Люберцы;(Московская обл.);картон, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
Суть в том, что мне нужен не единоразовый парсинг, а постоянный, поэтому мне нужно как-то на лету отбрасывать не нужную часть информации.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Вот вы и ответили на главный вопрос. Информация разнится. Поиск решения потребует от вас анализа нескольких паттернов с данными для парсинга отличающихся внутренним наполнением. Иначе найти алгоритм учитывающий ваши пожелания невозможно.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
протестируй на другом тексте, километраж только подставишь если подойдёт под другие строки, а так ответ вот такой

BY – RU;10.03–10.03;тент;Могилев;(Могилевская обл.);Орехово-Зуево;(Московская обл.);тнп, до 15т, от 82м3;20.000, б/н;Стрим Вижен, ООО;+7(920)3174371 (29)6454756
BY – RU;04.03–05.03;тент;Минск;(Минская обл.);Кондрово;(Калужская обл.);ТНП, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
BY – RU;05.03–09.03;тент;Пуховичи;(Минская обл.);Люберцы;(Московская обл.);картон, 20т, 82м3, загрузка боковая, задняя;КредоАвтоТрейд, ЧТУП;(29)3552670
 

Вложения

  • 25,7 КБ Просмотры: 12
  • Спасибо
Реакции: Malchishka

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