【问题标题】:C# Regex Check For Control Panel [closed]C#正则表达式检查控制面板[关闭]
【发布时间】:2015-09-20 10:26:29
【问题描述】:

我在 C# 中有这个问题.. 我正在尝试为 Minecraft 服务器制作一个控制面板。 我在控制面板中有控制台输出和所有这些东西,它可以工作。 现在我有一个在线播放器框,但它背后的代码不起作用.. 我正在尝试检查以下内容: [11:49:43 INFO]: JonasC[/127.0.0.1:51292] logged in 但是然后使用正则表达式,它应该在开始时有一个时间,名称和 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

【问题讨论】:

    标签: c# regex controls panel minecraft


    【解决方案1】:

    这个呢:

    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"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多