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

  • Автор темы Автор темы LightWood
  • Дата начала Дата начала
В зеннопостере есть такая отличная штука - называется конструктор регулярных выражений. Вы просто ставите что должно идти перед текстом, что после, чем текст начинается и чем заканчивается, а программа сама вам сформирует нужное регулярное выражение!
Чтобы взять только сайт из данной строки, регулярка будет такой:
(?<=\<a href\=\"http:\/\/).*?(?=\/)
 
Прошу помочь. цель - после парсинга получить тексты лучшего качества:

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

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

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

Update: нашел вариант
[A-Z].*?[.!?](?=\s|$)
но он не ограничивает длинну.
 
Помогите составить регулярку. Как взять определеннок кол-во символов из строки. Через "подстрока" не получается, если в строке меньше символов ничего не берется.
Т.е. мне надо взять из любой длинны строки не больше определенного кол-ва символов с учетом пробелов. Пример: есть строки из 10 и 100 символов, мне необходимо не более 50 символов. Итог 1я строка возмется полностью, 2я только первые 50.
 
Помогите составить регулярку. Как взять определеннок кол-во символов из строки. Через "подстрока" не получается, если в строке меньше символов ничего не берется.
Т.е. мне надо взять из любой длинны строки не больше определенного кол-ва символов с учетом пробелов. Пример: есть строки из 10 и 100 символов, мне необходимо не более 50 символов. Итог 1я строка возмется полностью, 2я только первые 50.

Регулярное выражение .{1,50} - первая цифра минимально необходимая длина, вторая - максимальная.
 
недавно приобрел 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%

есть ли возможность (подправить мое выражение/написать новое) чтоб сократить количество ненужных записей?
 
Только сейчас заметил эту тему. Большая просьба помочь с этим.
 
Код:
<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;/~\+#])?
 
Регулярка по удалению лишних символов

Хочу попросить помочь создать регулярку. Задача вроде бы простая. Есть строка, надо сохранить её, предварительно удалив лишние символы. Строка должна стать названием файла. Вот, для примера, условная строка, в которой расставлены произвольно символы, которые требуется удалить
Код:
Развернуть Свернуть Копировать
Слово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 -----------------------------------

Как решить задачу?
 
Как вариант в несколько действий можно решить
 

Вложения

Не очень привлекательный вариант. Неужели такое сложное задание?

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

Но, тоже как-то хоцца найти решение в одну проходку... ;)
 
Помогите составить регулярку. Нужно, чтобы парсились урлы, где в корневом каталоге есть две точки, т.е.:
http://servers.real-gaming.net/
http://fable.u8o.info/
 
  • Спасибо
Реакции: safer
UPD

Уже не надо)
 
Гуру регулярок помогите составить регулярки для отчистки текста от мусора. Текст такого вида http://disk.tom.ru/z7r616a# необходимо, что бы остались только правильные предложения.
 
Нужна помощь.

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

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

         
       
       
       1 мин. 
        CreatorEP 
       
       0,02

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

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

Код:
Развернуть Свернуть Копировать
(?<=Мои\ задания[\s]+)[\w\W](?=[0-9],[0-9]+)
 
Код:
Развернуть Свернуть Копировать
(?<=\.)[\w\W]*?(?=\d)

Чтобы избавится от пустоты в результате. его нужно потом пропустить через операции с текстом - trim
 
Чтобы избавится от пустоты в результате. его нужно потом пропустить через операции с текстом - trim

trim убирает пробелы только в начале, или конце файла, а тут в середине
 
Вы попробовали что я написал или просто так отпостили?
 
нет не пробовал, пока я ждал ответ, я переделал всю логику, а про трим я написал, т.к знаю что не удалит пробелы из середины
а то, что Вы написали, мне понятно, но всё же словосочетание - "Мои задания" должно присутствовать в выражении

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

PHP:
Развернуть Свернуть Копировать
Slipix


New_StartUP


Stilus


Rexus

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

Вложения

Помогите пожалуйста сделать самую легку регулярку:)
вот пример:

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

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

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

Можно ли так сделать?
 
Это под какую версию программы?
Если под 3, то проще взять эту строку и потом разделить по | и уже подстроки записывать как необходимо.
Если под 4, то можно вставить эту строку в список, в котором указать разделение строки | и соответственно уже брать нужную строку...
Как то так.
 
  • Спасибо
Реакции: Evgeny
Под 4 ку все.
И ведь только что ведь дошло.. Можно же и в таблицу все засунуть:)
 

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