0

いくつかの Web サイトをクロールし、style.css ファイルを確認して開き、style.css#([a-z]|[A-Z]|[0-9])([a-z]|[A-Z]|[0-9])([a-z]|[A-Z]|[0-9])([a-z]|[A-Z]|[0-9])([a-z]|[A-Z]|[0-9])([a-z]|[A-Z]|[0-9])(?=;)の上位 5 色を取得する正規表現を使用するプログラムを作成したい

正規表現の結果に 200 色が含まれている場合、上位 5 つの意味を取得したいと考えています。

たとえば、私の正規表現はこの色 #ffffff を 100 回検出します。これは、これが最初の色になることを意味します。

色 #343434 は 98 回見つかり、これが 2 番目の色になります。

style.css ファイルから上位 5 色を取得します。

これを実装する方法についてのアイデアはありますか?

ここでこの種の例を見つけました:

var l1 = new List<int>() { 1,2,3,4,5,2,2,2,4,4,4,1 };

        var g = l1.GroupBy( i => i );

        foreach( var grp in g )
        {
           Console.WriteLine( "{0} {1}", grp.Key, grp.Count() );
        }

しかし、それは私が探しているものではありません。

どんなアイデアでも大歓迎です。

前もって感謝します。

4

3 に答える 3

2

次のようなものを試すことができます:

var topMatches = Regex.Matches(stringToCheck, RegExPattern)
    .Cast<Match>()
    .GroupBy(m => m.Value)
    .Select(m => new{ Colour = m.Key, Count = m.Count() })
    .OrderByDescending(g => g.Count)
    .Take(5)
    .ToList();
于 2012-12-09T13:43:27.427 に答える
1
var colors = l1.GroupBy(x => x)
                .OrderByDescending(g => g.Count())
                .Select(g => g.Key)
                .Take(5)
                .ToList();
于 2012-12-09T13:44:34.010 に答える
0

このようなもの:

var g = <your matches>.
    GroupBy(i => i).
    OrderByDescending(grp => grp.Count()).
    Take(5).
    Select(k => k.Key).
    ToList();
于 2012-12-09T13:44:32.177 に答える