正規表現を使用してIRCメッセージを解析するのが適切だと思いました。私はこれまで得ました:
(?::(?<Prefix>[^ ]+) +)?(?<Command>[^ :]+)(?<middle>(?: +[^ :]+)*)(?<coda> +:(?<trailing>.*)?)?
次に、これを次の.NETコードで使用して、メッセージの重要な要素を取得します。
Prefix = matches.Groups["Prefix"].Value;
Command = matches.Groups["Command"].Value;
var parameters = new List<string>();
parameters.AddRange(matches.Groups["middle"].Value
.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries));
parameters.Add(matches.Groups["trailing"].Value);
Parameters = parameters.ToArray();
しかし、コードで個別に分割する必要があるのは好きではありません。middle
グループから一致の配列を取得する方法はありますか?