Бесплатно напишу регулярное выражение. Часть 2.

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
удалить все теги при помощи макроса замены по регулярному выражению, которым поменять вот это \<.*?\> на пустое значение.
 

diomidov

Client
Регистрация
13.07.2011
Сообщения
38
Благодарностей
3
Баллы
8
удалить все теги при помощи макроса замены по регулярному выражению, которым поменять вот это \<.*?\> на пустое значение.
Это понятно,а как после названия зделать переход на новую строку
Маринованный виноград.(здесь ентер)
Отберите лучшие итд..
Я понял как то нужно вставить макрос ентер в совпадение в первой точкой?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Тогда надо сначала удалить теги, потом регуляркой взять текст до первой точки, дальше добавить {-String.Enter-} и потом остальной текст.
 

diomidov

Client
Регистрация
13.07.2011
Сообщения
38
Благодарностей
3
Баллы
8
Тогда надо сначала удалить теги, потом регуляркой взять текст до первой точки, дальше добавить {-String.Enter-} и потом остальной текст.
Понял ,спасибо буду пробовать.
 

diomidov

Client
Регистрация
13.07.2011
Сообщения
38
Благодарностей
3
Баллы
8
А не подскажеш регулярку "взять текст до первой точки"
 

strannic

Client
Регистрация
05.12.2010
Сообщения
224
Благодарностей
10
Баллы
18
Подскажите как можно взять только те строки из файла в которых есть заданный кей ?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

ujanin

Client
Регистрация
16.11.2010
Сообщения
464
Благодарностей
14
Баллы
18
чтобы вытащить ип и порт нужна регулярка.

<td><font color="#333333">222.88.40.6</font></td><td><font color="#333333">8080 </font></td><td><font color="#333333">
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
чтобы вытащить ип и порт нужна регулярка.

<td><font color="#333333">222.88.40.6</font></td><td><font color="#333333">8080 </font></td><td><font color="#333333">
Cначала пропарсить текст такой регуляркой:

PHP:
(\d{1,3}\.){3}\d{1,3}.*?(?= \<\/font\>)
Затем макросом замен заменить все

PHP:
</font></td><td><font color="#333333">
на двоеточие :
 

ujanin

Client
Регистрация
16.11.2010
Сообщения
464
Благодарностей
14
Баллы
18
Cначала пропарсить текст такой регуляркой:

PHP:
(\d{1,3}\.){3}\d{1,3}.*?(?= \<\/font\>)
Затем макросом замен заменить все

PHP:
</font></td><td><font color="#333333">
на двоеточие :
мне это надо в проксичекер вставить, там вроде только 3и регулярки нужны.

Вот еще отсюда забрать ип порт надо

<td bgcolor=#334455 class=style1 align=left width=10%> <a href="#" onclick="displayMessage('?req=proxy_info&amp;id=25578');return false" class=a title="Подробнее">89.21.229.88 & # 5 8 ; 80</a>
d </td>
в общем вместо : идут симоволы подряд
& # 5 8 ; соответственно без проблема
 

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
<!--+++++++++++++++++++++++++++++++++++++++++++ 0 +++++++++++++++++++++++++++++++++++++++++++--->

<div class="box">
<h2>
Заводные игрушки
</h2>

</div>


<h3>
<a title="Крутящаяся Белка Сками" onclick="setCookieForOmniture('oz_mch', 'catalog_toy-catlst-sdef-name')" href="/context/detail/id/7017753/">
Крутящаяся Белка Сками</a>
</h3>

<!--+++++++++++++++++++++++++++++++++++++++++++ 0 +++++++++++++++++++++++++++++++++++++++++++--->

Результат нужен Текст без линков внутри <h2> и <h3> ( Заводные игрушки , Крутящаяся Белка Сками)


(?<=\<h2\>)[\w\W]*?(?=\<\/h2\>) --- это для <H2>,

- для <Н3> как вписать перенос строки и табуляцию между <h3> и <a title, </a> и </h3> ? \w\W ?
- как вписать множество знаков в одной строке <a title= ... /context/ ... > .*? ?

(?<=\<h3\>\w\W\<a title\=.*?\/context\/.*?\>)[\w\W]*?(?=\<\/a\>\w\W\<\/h3\>) --- это выражение не работает

кто знает будьте любезны, подскажите правильное решение
заранее благодарен
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
<!--+++++++++++++++++++++++++++++++++++++++++++ 0 +++++++++++++++++++++++++++++++++++++++++++--->

<div class="box">
<h2>
Заводные игрушки
</h2>

</div>


<h3>
<a title="Крутящаяся Белка Сками" onclick="setCookieForOmniture('oz_mch', 'catalog_toy-catlst-sdef-name')" href="/context/detail/id/7017753/">
Крутящаяся Белка Сками</a>
</h3>

<!--+++++++++++++++++++++++++++++++++++++++++++ 0 +++++++++++++++++++++++++++++++++++++++++++--->

Результат нужен Текст без линков внутри <h2> и <h3> ( Заводные игрушки , Крутящаяся Белка Сками)


(?<=\<h2\>)[\w\W]*?(?=\<\/h2\>) --- это для <H2>,

- для <Н3> как вписать перенос строки и табуляцию между <h3> и <a title, </a> и </h3> ? \w\W ?
- как вписать множество знаков в одной строке <a title= ... /context/ ... > .*? ?

(?<=\<h3\>\w\W\<a title\=.*?\/context\/.*?\>)[\w\W]*?(?=\<\/a\>\w\W\<\/h3\>) --- это выражение не работает

кто знает будьте любезны, подскажите правильное решение
заранее благодарен
Вот такая регулярка.
PHP:
(?<=\<h3\>\r\s\<a title\=\").*?(?=\" onclick)
 

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Вот такая регулярка.
PHP:
(?<=\<h3\>\r\s\<a title\=\").*?(?=\" onclick)
гранд мерси
но возможно какаято ошибка
ничего не находит
_http://www.ozon.ru/context/catalog/id/1133928/
это адрес исходной страницы
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
гранд мерси
но возможно какаято ошибка
ничего не находит
_http://www.ozon.ru/context/catalog/id/1133928/
это адрес исходной страницы
У меня в ДОМ коде страницы все находится в одной строке - http://gyazo.com/1b2989ed66937992e44b7de78131dfbc а регулярка составлена с переводом строки, как в вашем примере кода.
 

iulius

Client
Регистрация
01.10.2011
Сообщения
56
Благодарностей
3
Баллы
8
Да вы правы это помогло
(?<=\<H3\>.*?\>).*(?=\<\/A\> \<\/H3\>)
спасибо
 

safer

Client
Регистрация
04.05.2011
Сообщения
16
Благодарностей
0
Баллы
0
есть фильтр для очистки английской текстовки в TextPipePro, но нужно ещё фильтры для польского, чешского, испанского, немецкого и др. европейских языков, сможете ли как-то изменить мой английский файл-фильтр под них?
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
есть фильтр для очистки английской текстовки в TextPipePro, но нужно ещё фильтры для польского, чешского, испанского, немецкого и др. европейских языков, сможете ли как-то изменить мой английский файл-фильтр под них?
Что должен делать фильтр?
 

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 382
Благодарностей
915
Баллы
113

safer

Client
Регистрация
04.05.2011
Сообщения
16
Благодарностей
0
Баллы
0
Фильтр должен готовить, чистить текстовку после парсинга под дорвей, но, например, на польском он преобразует специфические символы в английскую латиницу : ż в z, ł в l, ę в е, ś в s. Т.е. нужно оставить все настройки, кроме преобразования букв в английскую латиницу. Возможно это можно сделать в настройках самой программы?
 

LightWood

Moderator
Регистрация
04.11.2010
Сообщения
2 382
Благодарностей
915
Баллы
113
По ссылке скачивается какойто бредофайл, который notepad++ открыть в понятном виде не смог
 

safer

Client
Регистрация
04.05.2011
Сообщения
16
Благодарностей
0
Баллы
0
он открывается программой TextPipePro
 

Nirvana

Client
Регистрация
15.01.2011
Сообщения
48
Благодарностей
1
Баллы
0
Задача: есть блок со ссылками из loveplanet (это не столь важно), домен один и тот же, а id ссылок разные. Нужно: кликнуть (перейти) по любой из ссылок в блоке.
Я думаю, это нужно сделать регуляркой, выпарсить ссылку, потом перейти по ней?
Правильно ли я думаю и как мне это реализовать ?:-)


Пока ждал ответа, сам уже сделал
 
Последнее редактирование:

brill

Client
Регистрация
08.02.2011
Сообщения
17
Благодарностей
0
Баллы
0
Подскажите по регулярке. Хочу спарсить линки с яндекс каталога, смотрим сорцы страницы
http://yaca.yandex.ru/yca/ungrp/cat/Entertainment/8.html

Вот составил регулярное выражение:
(?<=\<h3 class\=\"b-result__head\"\>\<a href\=\")http.*\/\"
Но из десяти линков оно выдёргивает только 5, а остальные почему-то нет. Подскажите как решить проблему?
 

lucian

Client
Регистрация
26.10.2011
Сообщения
214
Благодарностей
45
Баллы
0
Попробуй так (парсил DOM)
(?<=b-result__head.*)http.*?\/(?=\")
 

brill

Client
Регистрация
08.02.2011
Сообщения
17
Благодарностей
0
Баллы
0
Всё уже разобрался, спс
 

winchester7

Client
Регистрация
27.07.2011
Сообщения
51
Благодарностей
16
Баллы
8
Добрый день. Имеется код:

Код:
<div class="title">
      <a href="http://gameproj.ru/strategy/74-skachat-east-india-company-20.html">Скачать East India Company (2009/ENG) + UA-IX  бесплатно</a>
    </div>
Если бы весь код был без переносов строк и пробелов - все было бы нормально, но из-за них у меня возникли проблемы.

Код:
\<a href\=\"http:\/\/gameproj\.ru\/.*\/\d+.*\.html\"\>.*\<\/a\>
Вот этот код выдирает текст как мне нужно, но дело в том, что таких ссылок в тексте много, а мне нужно именно в блоке <div class="title">

Пробовал делать с помощью позитивного просмотра назад

Код:
[b][COLOR="#0000FF"](?<=\< div class\=\"title\"\>)[/b][/COLOR]\<a href\=\"http:\/\/gameproj\.ru\/.*\/\d+.*\.html\"\>.*\<\/a\>
Но опять же ничего не получилось из-за переноса строки.

Код:
.*
Между (?<=\<div class\=\"title\"\>) и \<a href\=\"http:\/\/gameproj\.ru\/.*\/\d+.*\.html\"\>.*\<\/a\> почему-то не помогло.

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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

winchester7

Client
Регистрация
27.07.2011
Сообщения
51
Благодарностей
16
Баллы
8
Спасибо. В тестере регулярка отработала. А вот на практике что-то не работает. Посмотрел по отладке - исходный текст (равно как и DOM) парсится не в той кодировке. Думаю в этом причина. Сайт на cp-1251, а парсится скорее всего в utf-8. В итоге весь русский текст меняется на черные ромбики.

Не подскажете как решить проблему?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

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