投稿者 shu  (社会人) 投稿日時 2017/11/6 00:08:53
TextBox1にファイルの内容が設定されていて
TextBox2に結果を表示するようなサンプルです。あくまで記述が効率的なだけで
スピード的には満足できるものになるかは保証できません。
実際にはファイルからの読み込みはFile.ReadAllTextを使って
1つの文字列変数にファイルの内容をすべて読み込んでしまうと
よいのではないでしょうか。

Imports System.Text
Imports System.Text.RegularExpressions

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim reg As New Regex("ma(?<gp>\d+)")
        Dim res As New StringBuilder

        For Each itm In (From a In reg.Matches(TextBox1.Text).OfType(Of Match)
                         Select gp = a.Groups("gp").Value
                         Group By gp Into cnt = Count)
            res.Append($"ma{itm.gp}:{itm.cnt}回 ")
        Next
        TextBox2.Text = res.ToString
    End Sub
End Class