正则表达式在线匹配,但不在C#代码中

时间:2017-02-21 10:04:32

标签: c# asp.net regex asp.net-mvc newline

这个正则表达式适用于在线regex testers,但是当我尝试这段代码时,正则表达式不匹配。

 Regex regex = new Regex(@"^\.lnr-(.*)\:before \{$", RegexOptions.Compiled | RegexOptions.Multiline);

        string css = System.IO.File.ReadAllText(Server.MapPath("/linearicons-free.css"));
        foreach (Match match in regex.Matches(css))
        {
           //doing sth 
        }

我错过了什么?

1 个答案:

答案 0 :(得分:2)

当C#解析字符串时,最后有一个\n。 因此,您的模式^\.lnr-(.*):before \{$会失败,因为您期望的最后一个charcater是{

将模式更改为^\.lnr-(.*):before \{\s$,它应该有效。

您可以测试.NET正则表达式here而不是regex101.com