Помогите с поиском одинаковых сабов

  • Автор темы Автор темы Alexander
  • Дата начала Дата начала

Alexander

Client
Регистрация
01.10.2014
Сообщения
79
Реакции
7
Баллы
8
Есть файл, в нем есть сабдомены
например
dsfs.site1.ru
sdfsdf.site2.ru
fsdfsf.site3.ru
fsdf.site4.com
sdfsd.site1.ru
sdf.site2.ru
sdfsf.site4.com
sfs.site2.ru
и т.д.

мне нужно найти одинаковые совпадения сабов а вернее что бы в итоге пройдя по файлу зенопостером получился файл в идеале такой
site4.com - 2 совпадения
site2.ru - 3 совпадения
и т.д.
 
  • Спасибо
Реакции: svaminar
Код:
Развернуть Свернуть Копировать
var list = project.Lists["list"];
var regex = new Regex(@"[^\.]+\.[^\.]+$");
var a = list.GroupBy(x => regex.Match(x).Value)
    .Select(g => new {Value = g.Key, Count = g.Count()})
    .OrderByDescending(x=>x.Count)
    .Select(d => d.Value+" - "+d.Count+" совпадений")
    .ToArray();
return string.Join("\r\n", a);
 
Код:
Развернуть Свернуть Копировать
var list = project.Lists["list"];
var regex = new Regex(@"[^\.]+\.[^\.]+$");
var a = list.GroupBy(x => regex.Match(x).Value)
    .Select(g => new {Value = g.Key, Count = g.Count()})
    .OrderByDescending(x=>x.Count)
    .Select(d => d.Value+" - "+d.Count+" совпадений")
    .ToArray();
return string.Join("\r\n", a);
спасибо, а можно разъяснить по коду, list - это мой список с сабами, пробую выполнить код выдает ошибку "Выполнение действия CSharp OwnCode Последовательность не содержит соответствующий элемент"
 
может списка такого нет. обычно такая ошибка возникает когда указывают несущ. имя зп переменной
 
спасибо код работает
 
Код:
Развернуть Свернуть Копировать
var list = project.Lists["list"];
var regex = new Regex(@"[^\.]+\.[^\.]+$");
var a = list.GroupBy(x => regex.Match(x).Value)
    .Select(g => new {Value = g.Key, Count = g.Count()})
    .OrderByDescending(x=>x.Count)
    .Select(d => d.Value+" - "+d.Count+" совпадений")
    .ToArray();
return string.Join("\r\n", a);
вопрос по коду, он только выбирает сабы вида dsd.sab.ru
а если есть сабы не только такого вида а например sdfs.sab.sab.ru и sdfsf.sab.sab.sab.ru
т.е. мне надо что бы брал саб после первой точки
какое регулярное выражение нужно прописать тут var regex = new Regex ?
 
да нада подстраивать регулярку
^.*(?=\.) выдаст sdfs.sab.sab и sdfsf.sab.sab.sab, но они не одинаковые и не попадают в одну группу.
 
Ошибки.
Ошибка в действии "CS0411" "The type arguments for method 'System.Linq.Enumerable.GroupBy<TSource,TKey>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,TKey>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.". [Строка: 3; Cтолбец: 9]
Ошибка в действии "CS0246" "The type or namespace name 'Regex' could not be found (are you missing a using directive or an assembly reference?)". [Строка: 2; Cтолбец: 17]

У меня задача просто подсчитать повторяющиеся строки в списке и вывести в переменную. Использую такой вариант сниппета:
var list = project.Lists["list"];
var regex = new Regex(@"^.*");
var a = list.GroupBy(x => regex.Match(x).Value)
.Select(g => new {Value = g.Key, Count = g.Count()})
.OrderByDescending(x=>x.Count)
.Select(d => d.Value+" - "+d.Count+" совпадений")
.ToArray();
return string.Join("\r\n", a);
 
подключите пространство имен для Regex или пишите полностью System.Text.RegularExpressions...
 
Содержимое списка:
test.ru
test.ru
site.ru
test.ru
site.ru

Пространство имён подключил.
По прежнему не работает. Выдаёт пустое значение.
 
Помогите пзж. Есть две таблицы. Из первой берём A1 и ищем этот текст (в моём случае это номер товара) во второй в столбце F если находим то копируем (из той строки (второй таблицы) где нашли ячейку) D и вставляем в первую таблицу ячейку B1.
 

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