C# 正则表达式检查控制面板

C# Regex Check For Control Panel

我在 C# 中遇到了这个问题.. 我正在尝试为 Minecraft 服务器制作一个控制面板。 我在控制面板中有控制台输出和所有这些东西,并且可以正常工作。 现在我有一个在线播放器盒子,但它背后的代码不起作用.. 我正在尝试检查这样的内容:[11:49:43 INFO]: JonasC[/127.0.0.1:51292] logged in 但是然后使用 Regex 并且它应该在开始时有一个时间并且名称和 ip 地址也应该是可变的.. 我现在有这个代码,但它不起作用..

#region Test for join
try
{
    Regex TestRegex = new Regex(@"[0-9\-]{10}\ ([0-9:]{8})\ \[INFO\]\ ([^\ ]*)\ [^\]]*\]\ (logged\ in)");
    if (TestRegex.IsMatch(AText))
    {
        MessageLogAddition = "";

        string[] Matches = TestRegex.Split(AText);
        MessageLogAddition += Matches[1] + " ";
        MessageLogAddition += Matches[2] + " ";
        MessageLogAddition += "joined.";

        ConnectedPlayersListBox.Items.Add(Matches[2].Trim());

        if (!AllPlayersListBox.Items.Contains(Matches[2].Trim()))
        {
            AllPlayersListBox.Items.Add(Matches[2].Trim());
        }
    }
}
catch
{
}
#endregion

感谢所有帮助! 该面板是开源的。 代码位于:http://coded.ddns.info/dl/MCSC_Source.zip

这个怎么样:

var TestRegex = new Regex(@"\[(?<time>.+) INFO]: (?<name>.+)\[(?<ip>.+)\] logged in");

您还可以像这样引用命名组:

var match = reg.Match(AText);
var timeJoined = match.Groups["time"];
var userName = match.Groups["name"];
var ip = match.Groups["ip"];