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

  • Автор темы Автор темы LightWood
  • Дата начала Дата начала
Подскажите пожалуйста регулярку чтобы обрезала предложения до трех слов.
тоже мучаюсь с похожей задачей: чтобы ещё можно было задавать диапазон - обрезать строки рандомно, к примеру, оставлять от 3 до 5 слов в строке. Как определить количество слов в строке нашел на форуме, а вот как обрезать и оставить заданное количество - не знаю.
 
C#:
Развернуть Свернуть Копировать
var str = "Подскажите пожалуйста регулярку чтобы обрезала предложения до трех слов.";
            
             Random rnd = new Random();
             var count = rnd.Next(1, str.Split(' ').Count());
             var words = str.Split(' ').Take(count);
             string rezultString = string.Join(" ", words.ToArray());
 
  • Спасибо
Реакции: Wide
C#:
Развернуть Свернуть Копировать
var str = "Подскажите пожалуйста регулярку чтобы обрезала предложения до трех слов.";
          
             Random rnd = new Random();
             var count = rnd.Next(1, str.Split(' ').Count());
             var words = str.Split(' ').Take(count);
             string rezultString = string.Join(" ", words.ToArray());
имхо. было бы логичнее заставить код работать с переменными. ну а так, как всегда красава. забираю в копилку)

2015-04-04_125431.jpg
 
имхо. было бы логичнее заставить код работать с переменными. ну а так, как всегда красава. забираю в копилку)

я не кодер но вроде работает))
Код:
Развернуть Свернуть Копировать
var str = project.Variables["str"].Value;

             Random rnd = new Random(1);
             var count = rnd.Next(int.Parse(project.Variables["q"].Value), str.Split(' ').Count());
             var words = str.Split(' ').Take(count);
             string rezultString = string.Join(" ", words.ToArray());
            return rezultString;
;

если предложение состоит меньше заданного числа то выходит по красной
q - это ваше заданное число которое прибавляется к +1, так же можно поставить кубик рандом для q

если что то ни так сильно не пинайте)))))
 
  • Спасибо
Реакции: sentinel, SilverSun и Wide
Приветствую!
Нуждаюсь в Вашей помощи.
Возникли сложности со взятием тайтла и сниппета с поисковика GoGo.
Суть проблему в огромном количестве пробелов, переводах строки и ненужной шелухи при использовании регулярного выражения.
Помогите подкорректировать регулярку. Проект приложен.
 

Вложения

Друзья, нужна ваша помощь в составлении регулярного выражения. Нужно вытянуть тел.номера (телефонов может быть от 1 до 4)
Пример:
<strong class="fnormal xx-large"><span class="block">8 (099) 459 80 60</span> <span class="block">093 727 72 62</span> </strong>

Нужно чтобы было
8 (099) 459 80 60; 093 727 72 62
 
(?<=>)\d[\d\ ()]+\d(?=<)
 
ну-ну )
дан был конкретный пример, на его основе написана рабочая регулярка. Чтоб собрать все совпадения - нужно использовать список.
 
Аффтар, где ты?) народ помогите пжл распарсить такие ссылки на категории: http://poddomen.site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/rubrica2/rubrica3/
т.е. должно быть так поддомен и/или домен плюс уровень категории. пример: http://poddomen.site.ru/rubrica1/ http://poddomen.site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/ http://site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/rubrica2/rubrica3/
 
Парни, актуально очень))
 
Аффтар, где ты?) народ помогите пжл распарсить такие ссылки на категории: http://poddomen.site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/rubrica2/rubrica3/
т.е. должно быть так поддомен и/или домен плюс уровень категории. пример: http://poddomen.site.ru/rubrica1/ http://poddomen.site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/ http://site.ru/rubrica1/rubrica2/ http://site.ru/rubrica1/rubrica2/rubrica3/
ниче не понял, но уже отпишу , раз тут

Код:
Развернуть Свернуть Копировать
https?://.+?/(.+?/){2}

{2} сколько категорий брать
{2,5} диапазон
{2,} >=2
 
Последнее редактирование:
  • Спасибо
Реакции: Wide
ниче не понял, но уже отпишу , раз тут

Код:
Развернуть Свернуть Копировать
https?://.+?/(.+?/){2}

{2} сколько категорий брать
{2,5} диапазон
{2,} >2
ого работает) нужно будет подстановой в скобках поиграться. а универсальной нету? типа чтоб разбила на все категории?
 
ого работает) нужно будет подстановой в скобках поиграться. а универсальной нету? типа чтоб разбила на все категории?
увы, я тебя не понимать)
покажи точный исходный текст, дальше покажи что с него ты хочешь получить, в точном виде. тогда станет ясно
 
увы, я тебя не понимать)
покажи точный исходный текст, дальше покажи что с него ты хочешь получить, в точном виде. тогда станет ясно
всё спасибо мил-человек) распарсил подстановкой значения в скобках {}
 
Помогите плиз с регуляркой!
Задача: собрать все теги img со страницы, исключив те теги, которые в ссылке содержат слова logo и avatar.
Вот примеры ссылок:
Код:
Развернуть Свернуть Копировать
<img src="http://cdn1.img22.domen.ru/i/company_logo.png" alt="">
<img width="16" height="16" src="http://cdn1.img22.domen.ru/i/default-avatar-20x20.jpg" class="avatar">
Пишу что-то вроде этого:
Код:
Развернуть Свернуть Копировать
<img\ .*?domen\.ru.*?(?!logo|avatar).*?>
<img\ .*?domen\.ru.*?((?!logo|avatar).)*?>
но эти конструкции все-равно парсят все теги со стоп-словами :(
Как сделать правильно?

P.S. Ссылки абсолютно разные везде, их объединяет только корневой домен и + могут быть еще другие стоп слова.
 
Вроде этого -
Код:
Развернуть Свернуть Копировать
<img[^<>]*?https?://((?!logo|avatar|<|>).)+?["'][^<>]*?>
 
  • Спасибо
Реакции: Severip
Спасибо за помощь!
Только осталось одно но - domen.ru тоже должен присутствовать, т.к. без него собирает счетчики и прочий мусор.
Куда вставить domen.ru, чтобы он тоже присутствовал?
У меня не получается с доменом :(
 
А-а-а поковырял твой вариант, получилось!
LmPopo, спасибо!!!!!!
Вот итог:
Код:
Развернуть Свернуть Копировать
<img[^<>]*?https?://[^<>]*?domen\.ru[^<>]((?!logo|avatar|<|>).)+?["'][^<>]*?>
Может пригодится кому... парсит картинки в статье.
 
верно, но можно конкретно написать слеш вместо "[^<>]" :-)
+ добавил отсутствие пробелов в ссылке
Код:
Развернуть Свернуть Копировать
<img[^<>]*?https?://[^<>]*?domen\.ru/((?!logo|avatar|<|>|\s).)+?["'][^<>]*?>
 
  • Спасибо
Реакции: Severip
О, да! Работает! Спасибо! :)
 
Еще вопрос по регуляркам. Есть список дат в файле:

20150505-наборсимволов::наборсимволов
20150504-наборсимволов::наборсимволов
20150503-наборсимволов::наборсимволов
20150502-наборсимволов::наборсимволов
20150501-наборсимволов::наборсимволов
20150430-наборсимволов::наборсимволов
20150429-наборсимволов::наборсимволов

Есть экшен Удалить строки в списке соответствующие регулярному выражению.
Задача: нужна регулярка, которая удалит все строки "младше" текущей даты 20150505 на 3 дня.
Подскажите плиз, как сделать?
 
Сначала нужно получить эти три дня, напр. с помощью c# экшна.
Затем удалить строки, не удовлетворяющие регулярке: ^20150505|^20150504|^20150503
 
  • Спасибо
Реакции: Severip
LmPopo, спасибо тебе большое! Снова выручил.
Сделал снипет на c#, он конечно страшный, но как умею...
Код:
Развернуть Свернуть Копировать
var date = DateTime.Now.ToString("yyyyMMdd");
var date1 = DateTime.Now.AddDays(-1).ToString("yyyyMMdd");
var date2 = DateTime.Now.AddDays(-2).ToString("yyyyMMdd");
var date3 = DateTime.Now.AddDays(-3).ToString("yyyyMMdd");
string result = "^" + date + "|^" + date1 + "|^" + date2 + "|^" + date3;
return result;
Может пригодится кому...
Хотя кто умеет, в две строки все напишет.
 
Покопался на форуме, но не нашел решения. Как получить регуляркой домен из ссылок вида:
www.cdn1.img22.domen.ru
img22.domen.com
в виде:
domen.ru или domen.com, т.е. чтобы сохранялся только чистый домен?
Варианты со списком всех доменных зон не нужны, т.к. никаких экзотических доменов не будет.
 
а вам это надо после навигейта на сайт или до?
 
До перехода на сайт, оно будет в другую регулярку подставляться.
 
Респект, LmPopo! :dh:
:dk:
 

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