0

我正在尝试在我的代码中运行一个正则表达式字符串,它将获取介于<li class="f"</li>

string regex = @"\<li\sclass="f"(\s*?.*?)*?\</li>";

但是由于引号,语法是错误的。我尝试用 just 替换它们,' 但没有找到任何东西。

正则表达式字符串正在工作,只是这些引号不是。我试图照顾一些像 space-->/s 这样的替代品,但没有找到任何东西。

4

3 回答 3

1

要转义字符串中的引号,请将它们加倍:

string regex = @"<li\sclass=""f""(.*?)</li>";

我还稍微“修复”了您的正则表达式,但使用正则表达式解析 HTML 仍然不是一个好主意。

于 2012-07-23T10:20:41.287 回答
0

使用盾牌符号

@""""; //"

"\""; //"

于 2012-07-23T10:22:38.803 回答
0

您没有转义引号,但无论如何都不应该使用正则表达式来解析 HTML。使用HtmlAgilityPack之类的东西,然后按照这些行编写代码;

static void Main(string[] args)
{
    HtmlDocument doc = new HtmlDocument();
    doc.Load("file.htm");

    var results = doc.DocumentNode
        .SelectNodes("//li[contains(@class, 'f')]")
        .Select(x => x.InnerHtml);

    foreach (string result in results)
    {
        Console.WriteLine(result);
    }
}
于 2012-07-23T10:53:05.490 回答