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

Alexander

Client
Регистрация
01.10.2014
Сообщения
77
Благодарностей
6
Баллы
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 совпадения
и т.д.
 

rostonix

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

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
Код:
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);
 

Alexander

Client
Регистрация
01.10.2014
Сообщения
77
Благодарностей
6
Баллы
8
Код:
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 Последовательность не содержит соответствующий элемент"
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
может списка такого нет. обычно такая ошибка возникает когда указывают несущ. имя зп переменной
 

Alexander

Client
Регистрация
01.10.2014
Сообщения
77
Благодарностей
6
Баллы
8
спасибо код работает
 

Alexander

Client
Регистрация
01.10.2014
Сообщения
77
Благодарностей
6
Баллы
8
Код:
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 ?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
да нада подстраивать регулярку
^.*(?=\.) выдаст sdfs.sab.sab и sdfsf.sab.sab.sab, но они не одинаковые и не попадают в одну группу.
 

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Благодарностей
15
Баллы
18
Ошибки.
Ошибка в действии "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);
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
подключите пространство имен для Regex или пишите полностью System.Text.RegularExpressions...
 

gs517

Client
Регистрация
18.05.2013
Сообщения
138
Благодарностей
15
Баллы
18
Содержимое списка:
test.ru
test.ru
site.ru
test.ru
site.ru

Пространство имён подключил.
По прежнему не работает. Выдаёт пустое значение.
 

gennady01071

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

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