正则表达式获取高位文本C#

正则表达式获取高位文本C#,c#,regex,wpf,C#,Regex,Wpf,我试图从这篇文章中得到: updateServer cInterface_test-184 cServer_test-184 dControl_test-178 mcontrol_doorinterface_test-178 斜体字符串。例如,在第二行test-184中,我使用以下正则表达式: test+.* 但是如何在c#wpf中提取字符串中的test-184呢 谢谢:) 编辑:星星不在文本中,我想突出显示我想要的文本您可以使用如下代码: class Program { stati

我试图从这篇文章中得到:

updateServer
cInterface_test-184
cServer_test-184
dControl_test-178
mcontrol_doorinterface_test-178
斜体字符串。例如,在第二行test-184中,我使用以下正则表达式:

test+.*
但是如何在c#wpf中提取字符串中的test-184呢

谢谢:)


编辑:星星不在文本中,我想突出显示我想要的文本

您可以使用如下代码:

class Program
{
    static void Main(string[] args)
    {
        var text = @"
updateServer
cInterface_*test-184*
cServer_*test-184*
dControl_*test-178*
mcontrol_doorinterface_*test-178*
";
        foreach (Match match in Regex.Matches(text, "\\*(.*)\\*"))
        {
            Console.WriteLine(match.Groups[1].Value);
        }
    }
}

在“测试-”之后,是否总是有一个数字

如果是这样,以下是最适合您的:

static void Main(string[] args)
        {
            var text = @"
updateServer
cInterface_*test-184*
cServer_*test-184*
dControl_*test-178*
mcontrol_doorinterface_*test-178*
";
            var pattern = @"test-\d*";

            foreach (Match match in Regex.Matches(text, pattern))
                        Console.WriteLine(match);
}
如果“test-”不是常量,则可以使用以下代码:

static void Main(string[] args)
        {
            var text = @"
updateServer
cInterface_*test-184*cServer_*test-184*
cServer_*test-184*
dControl_*test-178*
mcontrol_doorinterface_*test-178*
";
            var pattern = @"\*(.*?)\*";

            foreach (Match match in Regex.Matches(text, pattern))
                Console.WriteLine(match.Groups[1].Value);
        }

也许最好把(.*)变成非贪婪(.*)。即使这些值在一行中,它也可以工作,比如:cInterface_test-184*cServer_uu*test-184非常感谢!真是太多了!工作很好!