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

  • Автор темы Автор темы LightWood
  • Дата начала Дата начала
Прошу помощи :
Есть строки текста , варианты типа:
1) Alarm to do.
2) <p>stefany very sexy.
3) <p>Exelent programmers here ).
4) <p>10 best programmers here, thanks.

Нужна регулярка для вытаскивания <p> если за ним стоит любая Большая буква или цифра.
То есть на третьем и четвертом предложении регулярка должна выпарсить <p>
, в остальных не сработать.
 
  • Спасибо
Реакции: females
добрый день. помогите с регуляркой. нужно спарсить текст name_123
Код:
Развернуть Свернуть Копировать
FTP username

name_123


FTP password
пробую регуляркой
Код:
Развернуть Свернуть Копировать
(?<=FTP\ username)[\w\W]*(?=FTP\ password)
, но остаются пробелы и переводы строк. как их убрать?
просьба написать рабочий вариант регулярки, перепробовал разные варианты, ничего не помогает
 
берите той что есть, а потом сделайте строке Trim
 
берите той что есть, а потом сделайте строке Trim
это как?
p.s.:я же попросил написать конкретное решение, а не подсказку в каком направлении копать. если Trim может это решить, покажите где и как его использовать
 
Операции с текстом - Trim
После того как использовали вашу регулярку
 
Технически можно и регуляркой, но с тримом надежнее. Поверьте - проект работать будет едва ли дольше, зато достоверность ощутимо повышается
 
спасибо, помогло. правда жаль что регуляркой не получается сразу это сделать.
регуляркой получается много чего делать, но иногда есть смысл не использовать (не выдумывать regex), а сделать подручными средствами. И функция trim как раз подходит. Но если вам там важно только regex использовать, то это сойдет:
Код:
Развернуть Свернуть Копировать
(?<=FTP username[\s\r\n]*)[\w]+(?=[\s\r\n]*FTP password)
 
  • Спасибо
Реакции: vojager
Имеется строка Filename : new'file7 etc...
как из нее удалить все спецсимволы и пробелы? Т.е. чтобы на выходе остались только буквы-цифры.
 
Операции с текстом - Замена
И заменить регуляркой (символ1|символ2|символ3) на пустоту
 
Подскажите пожалуйста символ "Переноса строки", гугл не находит =)
 
\n
 
Подскажите пожалуйста как удалить даты из текста. Формат такой 21 сен 2014
Даты абсолютно разные (спаршенные сниппеты ПС хочу очистить)
 
Подскажите пожалуйста как удалить даты из текста. Формат такой 21 сен 2014
Даты абсолютно разные (спаршенные сниппеты ПС хочу очистить)
\d{1,2}\s[а-я]{3}\s\d{4}
 
  • Спасибо
Реакции: females и GHU
Подскажите пожалуйста, как спарсить все название и описание вот отсюда http://subscribe.ru/catalog/woman/relation

Запарился уже с регуляркой. вот (?<=<h2>([\S\s]*)<a\ href([\s\S]*))[\w\W]*?(?=</p>([\S\s]*)<div\ class="act">)
Что исправить надо?
Чтоб получить все 50 названий и описаний? :be:
 
females, Держи) Добавь в элемент Директива using то что на картинке (using System.Text.RegularExpressions;)
E5mdkzv8cv4Br1.png

LQ2KneLET9bemj.png

C#:
Развернуть Свернуть Копировать
var html = project.Variables["html"].Value;

var lst = project.Lists["Список"];

string pattern = "(?<=<div\\ class=\"entry\\ fullentry\">)[\\w\\W]*?<div\\ class=\"act\">"; // регулярка для div'a

var matches = Regex.Matches(html,pattern);

foreach (Match match in matches)
           {
               var mar = match.Value;
               string zagolovok = Regex.Match(mar,"(?<=<b>)[\\w\\W]*?(?=</b></a>)").Value;
               string opisanie = Regex.Match(mar,"(?<=<div\\ class=\"content\">)[\\w\\W]*?(?=</div>)").Value.Replace("<p>","").Replace("</p>","");
            
               lst.Add(zagolovok,";",opisanie); // в список кидаем Заголовок;Описание
           }
        
return "Все прошло успешно";
 
Последнее редактирование:
  • Спасибо
Реакции: females
вау!!!! сейчас проверю )))) спс! :-)
 
lst.Add(zagolovok,";",opisanie); // в список кидаем Заголовок;Описание
Это вроде для таблиц )))) я поправил и заработало, но есть один момент:
В source не всегда заголовки лежат между тегами <b>*</b> первые 2 заголовка с тегом <b>

Остальные заголовки не содержат теги,
как поправить этот кусок кода, чтоб он брал все заголовки,
string zagolovok = Regex.Match(mar,"(?<=<b>)[\\w\\W]*?(?=</b></a>)").Value;
 
И вправду. Нижние посты идут с тегами h2. Ну ничего страшного. Двумя регулярками сделаем)
C#:
Развернуть Свернуть Копировать
 string zagolovok = Regex.Match(mar, "(?<=<b>)[\\w\\W]*?(?=</b></a>)").Value;
            if (zagolovok == "")
            {
                var buff = Regex.Match(mar, "(?<=<h2>\\d{1,5})[\\w\\W]*?</h2>").Value;
                zagolovok = Regex.Match(mar, "(?<=[>])[^<>]+(?=[<])").Value.Trim();
            }
 
  • Спасибо
Реакции: alexgrand и females
Там идет по разному

1 вариант : <a href="/catalog/woman.relation.domashniy"><b>Образ Жизни Женщины</b></a>
2 вариант : <a href="/catalog/woman.relation.giznvchudesah">Жизнь полная Чудес</a>

В первых ссылках есть тег <b>, в последущих - нету.

Я думаю, надо регулярку переделать, как-то так,но не знаю как ((((

что-то должно быть эдакое ))))
string zagolovok = Regex.Match(mar,"(?<=<a([\\s\\S])>)[\\w\\W]*?(?=</a>)").Value.Replace("<b>","").Replace("</b>","");

но она не робит :be:
 
Второй код идет для страницы с текстом
Код:
Развернуть Свернуть Копировать
<h2>18.
<a href="/catalog/woman.relation.dream">Как стать мечтой для любимого?</a>

</h2>
 
И вправду. Нижние посты идут с тегами h2. Ну ничего страшного. Двумя регулярками сделаем)
Одновременно опубликовали )))) не заметил ответа....
Сейчас побежал тестить :bi:
 
6.;
О принятии, собственном росте, повышении самооценки

7.;
Жизнь полная Любви создает жизнь полную чудес . Рассказывая о Чудесах сделанных в Любви , мы делаем это от всей души. Делаем с любовью.

8.;
Эта рассылка посвящена всему, что связано с семьей: любовь, ревность, измены, отношения с родственниками и другие проблемы...

9.;
Рассылка открыта для тех, кто мечтает о счастье, Любви, творчестве и богатстве.

Первые пару нормальные, остальные вот такие, без заголовков (((((
 
C#:
Развернуть Свернуть Копировать
.... все как выше в коде
foreach (Match match in matches)
           {
               var mar = match.Value;
             
               string zagolovok = Regex.Match(mar, "(?<=<b>)[\\w\\W]*?(?=</b></a>)").Value;
                if (zagolovok == "")
                {
                    var buff = Regex.Match(mar, "(?<=<h2>\\d{1,5})[\\w\\W]*?</h2>").Value;
                    zagolovok = Regex.Match(buff, "(?<=[>])[^<>]+(?=[<])").Value.Trim();
                }

                string opisanie = Regex.Match(mar,"(?<=<div\\ class=\"content\">)[\\w\\W]*?(?=</div>)").Value.Replace("<p>","").Replace("</p>","");
         
               lst.Add(zagolovok,";",opisanie); // в список кидаем Заголовок;Описание
           }
     
return "Все прошло успешно";
 
  • Спасибо
Реакции: alexgrand
Может что-то не так делаю? :dy:
Не нашел, как вложение сделать - вот тут файл http://file.sampo.ru/tw8kz6/
 

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