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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
В зеннопостере есть такая отличная штука - называется конструктор регулярных выражений. Вы просто ставите что должно идти перед текстом, что после, чем текст начинается и чем заканчивается, а программа сама вам сформирует нужное регулярное выражение!
Чтобы взять только сайт из данной строки, регулярка будет такой:
(?<=\<a href\=\"http:\/\/).*?(?=\/)
 

izubr

Client
Регистрация
11.05.2011
Сообщения
520
Благодарностей
217
Баллы
43
Прошу помочь. цель - после парсинга получить тексты лучшего качества:

Задача: из кучи напарсенного текста вырезать только предложения, похожие на предложения :-)
то есть скажем задать, что в нужных предложениях: С Большой буквы, имеется от 4 до 10 слов и в конце .!?

А то бывают такие кучи мусора парсятся, ужас

выручайте. поиск в гугле не помог :(

Update: нашел вариант
[A-Z].*?[.!?](?=\s|$)
но он не ограничивает длинну.
 

ujanin

Client
Регистрация
16.11.2010
Сообщения
464
Благодарностей
14
Баллы
18
Помогите составить регулярку. Как взять определеннок кол-во символов из строки. Через "подстрока" не получается, если в строке меньше символов ничего не берется.
Т.е. мне надо взять из любой длинны строки не больше определенного кол-ва символов с учетом пробелов. Пример: есть строки из 10 и 100 символов, мне необходимо не более 50 символов. Итог 1я строка возмется полностью, 2я только первые 50.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Помогите составить регулярку. Как взять определеннок кол-во символов из строки. Через "подстрока" не получается, если в строке меньше символов ничего не берется.
Т.е. мне надо взять из любой длинны строки не больше определенного кол-ва символов с учетом пробелов. Пример: есть строки из 10 и 100 символов, мне необходимо не более 50 символов. Итог 1я строка возмется полностью, 2я только первые 50.
Регулярное выражение .{1,50} - первая цифра минимально необходимая длина, вторая - максимальная.
 

prof

Client
Регистрация
20.03.2012
Сообщения
6
Благодарностей
0
Баллы
0
недавно приобрел zp, пока не особо силен в регулярных выражениях, прошу помощи

мне необходимо собрать соксы из текста. соксы представлены по разному:

www.boice.com:80
ppp-67-186-234-110.mi.tru.net:8080
123.45.678.90:8080
итп

сейчас юзаю такое выражение
[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}\:\d{2,5}

но собирается много мусора типа:
lw.boy.oeu:7784
32.043:9092
.pdh.keq:6178

в итоге, мусора получается около 30%

есть ли возможность (подправить мое выражение/написать новое) чтоб сократить количество ненужных записей?
 

Rise

Client
Регистрация
21.02.2012
Сообщения
27
Благодарностей
0
Баллы
0
Только сейчас заметил эту тему. Большая просьба помочь с этим.
 

zloy666

Client
Регистрация
29.04.2011
Сообщения
4
Благодарностей
0
Баллы
0
Код:
<p>Hello Constantine Bozeman,<br><br>To verify your email address, please click the following link:<br><a href=http://blogbugs.org/verify.php?u=58557&c=QS5wDJPj rel=nofollow target='_blank'>http://blogbugs.org/verify.php?u=58557&c=QS5wDJPj</a><br><br><br>How to earn money with your blogs? <br>List of some affiliate programs for blogs' traffic:<br><a href=http://blogbugs.org/programs.php rel=nofollow target='_blank'>http://blogbugs.org/programs.php</a><br><br><br>----<br>Thank You<br><a href=http://blogbugs.org/ rel=nofollow target='_blank'>http://blogbugs.org/</a><br>
</p>
<br>
Спарсить: http://blogbugs.org/verify.php?u=58557&c=QS5wDJPj

Регулярка: (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?
 

ZennoScript

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

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 342
Благодарностей
298
Баллы
83
Регулярка по удалению лишних символов

Хочу попросить помочь создать регулярку. Задача вроде бы простая. Есть строка, надо сохранить её, предварительно удалив лишние символы. Строка должна стать названием файла. Вот, для примера, условная строка, в которой расставлены произвольно символы, которые требуется удалить
Код:
Слово1@ слово2.cлово3 слово4&слово5 слово6 слово7? слово8: слово9; слово10 "слово11слово" слово12 (слово13) Человек [Люди] ещё люди {разные человек}
Составил регулярку, которая всё вычищает, НО, ставить все слова столбиком, а надо, чтобы слова остались строкой. Регулярка вот эта
Код:
[^@ ^& ^? ^: ^; ^" ^% ^/ ^\\ ^\( ^\) ^\[ ^\] ^\{ ^\} ^\. ]*
Результат получается вот такой
Код:
----------------------------------- совпадение № 0 -----------------------------------
Слово1
----------------------------------- совпадение № 1 -----------------------------------

----------------------------------- совпадение № 2 -----------------------------------

----------------------------------- совпадение № 3 -----------------------------------
слово2
----------------------------------- совпадение № 4 -----------------------------------

----------------------------------- совпадение № 5 -----------------------------------
cлово3
----------------------------------- совпадение № 6 -----------------------------------

----------------------------------- совпадение № 7 -----------------------------------
слово4
----------------------------------- совпадение № 8 -----------------------------------
Мало того, что в столбик, так ещё и пустые строки появляются
Если регулярку изменить на такую вот:
Код:
(?<=(\r|\n| |^))[^@ ^& ^? ^: ^; ^" ^% ^/ ^\\ ^\( ^\) ^\[ ^\] ^\{ ^\} ^\. ]*
Тогда пустые строки исчезают, но зато другая беда появляется. В слова где символ идёт слитно с словами (слово2.cлово3 - слово4&слово5), слова удаляются вместе с символами.
Код:
----------------------------------- совпадение № 0 -----------------------------------
Слово1
----------------------------------- совпадение № 1 -----------------------------------
слово2
----------------------------------- совпадение № 2 -----------------------------------
слово4
----------------------------------- совпадение № 3 -----------------------------------
слово6
----------------------------------- совпадение № 4 -----------------------------------
слово7
----------------------------------- совпадение № 5 -----------------------------------
Как решить задачу?
 

lucian

Client
Регистрация
26.10.2011
Сообщения
214
Благодарностей
45
Баллы
0
Как вариант в несколько действий можно решить
 

Вложения

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 342
Благодарностей
298
Баллы
83
Не очень привлекательный вариант. Неужели такое сложное задание?

Я нашёл более привлекательную регулярку, ею можно в два прохода пройтись
Код:
\w\W*[a-zA-Zа-яА-Я0-9-,\. ]*
ею получаем всё, в столбик, без пустых строк, далее, выстраиваем всё в одну строку.

Но, тоже как-то хоцца найти решение в одну проходку... ;-)
 

safer

Client
Регистрация
04.05.2011
Сообщения
16
Благодарностей
0
Баллы
0
Помогите составить регулярку. Нужно, чтобы парсились урлы, где в корневом каталоге есть две точки, т.е.:
http://servers.real-gaming.net/
http://fable.u8o.info/
 

ZennoScript

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

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 342
Благодарностей
298
Баллы
83

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
UPD

Уже не надо)
 

ujanin

Client
Регистрация
16.11.2010
Сообщения
464
Благодарностей
14
Баллы
18
Гуру регулярок помогите составить регулярки для отчистки текста от мусора. Текст такого вида http://disk.tom.ru/z7r616a# необходимо, что бы остались только правильные предложения.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Нужна помощь.

Из этой строки:
Код:
<a href="http://zennolab.com" target="_blank">ZennoPoster 4</a>
спарсить и привести результат к такому формату:
Код:
http://zennolab.com#ZennoPoster 4
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
В два шага:

http://zennolab.com получаем такой регуляркой: (?<=href=").*?(?=")
ZennoPoster 4 получаем такой: (?<=_blank">).*?(?=</a>)
 
  • Спасибо
Реакции: Dimionix

SnowWind

Client
Регистрация
10.10.2012
Сообщения
246
Благодарностей
35
Баллы
28
есть вот такой тест
Код:
 Мои задания 

         
       
       
       1 мин. 
        CreatorEP 
       
       0,02
никак не могу выбрать из этого всё что стоит после 1 мин. (тут м.б и 3 ч. и т.д) и до 0,02 (тут м.б и 0,17 и т.д)

вот что пытался написать сам при помощи конструктора рег. выр.

Код:
(?<=Мои\ задания[\s]+)[\w\W](?=[0-9],[0-9]+)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Код:
(?<=\.)[\w\W]*?(?=\d)
Чтобы избавится от пустоты в результате. его нужно потом пропустить через операции с текстом - trim
 

SnowWind

Client
Регистрация
10.10.2012
Сообщения
246
Благодарностей
35
Баллы
28
Чтобы избавится от пустоты в результате. его нужно потом пропустить через операции с текстом - trim
trim убирает пробелы только в начале, или конце файла, а тут в середине
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Вы попробовали что я написал или просто так отпостили?
 

SnowWind

Client
Регистрация
10.10.2012
Сообщения
246
Благодарностей
35
Баллы
28
нет не пробовал, пока я ждал ответ, я переделал всю логику, а про трим я написал, т.к знаю что не удалит пробелы из середины
а то, что Вы написали, мне понятно, но всё же словосочетание - "Мои задания" должно присутствовать в выражении

этот текст я получил забрав его из outertext и получая много пробелов, но теперь проще стало забирать из outerhtml
 

SnowWind

Client
Регистрация
10.10.2012
Сообщения
246
Благодарностей
35
Баллы
28
Имею файл вот с таким содержимым, забираю из него весь текст
Код:
Кухни на заказ в Ростове
tw:а самое что интересное, это сноуборд!
Аккаунты для работы:
Slipix
New_StartUP
Stilus
Rexus
и мне нужно забрать из него ВСЁ что стоит после словосочетания "Аккаунты для работы:"
написал вот такое выражение -
PHP:
(?s)(?<=Аккаунты\ для\ работы:.*)[a-zA-Z_]*
но работает это не так как нужно и в результат получаю

PHP:
Slipix


New_StartUP


Stilus


Rexus
Как избавиться от пробелов?! :huh:
Точнее как избавиться от них при парсинге, как переписать выражение, через условие я знаю как избавиться
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Ваща регулярка у меня не работает.
 

Вложения

ZennoScript

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

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
Помогите пожалуйста сделать самую легку регулярку:-)
вот пример:

domen|login|password|ftp|papka1|papka2|papka3

Нужно поотдельности вывести все данные
domen-
login-
password-
ftp-
papka1-
papka2-
papka3-

Все названия привел для примера, просто не получается сделать в конструкторе
потомучто домен может быть и ru и com, логины и пароли могут быть разные, там где написано papka1,2,3 - могут быть любые слова
а как вот сделать регулярку, чтобы по счету делала, например до первой| - это одно
после первой | -это второе
между первой и второй(или после первой|) | - это третье
после четвертой | - это четвертое и т.д.

Можно ли так сделать?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Это под какую версию программы?
Если под 3, то проще взять эту строку и потом разделить по | и уже подстроки записывать как необходимо.
Если под 4, то можно вставить эту строку в список, в котором указать разделение строки | и соответственно уже брать нужную строку...
Как то так.
 
  • Спасибо
Реакции: Evgeny

Evgeny

Client
Регистрация
01.03.2012
Сообщения
127
Благодарностей
12
Баллы
18
Под 4 ку все.
И ведь только что ведь дошло.. Можно же и в таблицу все засунуть:-)
 

ZennoScript

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

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