我正在尝试在我的代码中运行一个正则表达式字符串,它将获取介于<li class="f"
和</li>
string regex = @"\<li\sclass="f"(\s*?.*?)*?\</li>";
但是由于引号,语法是错误的。我尝试用 just 替换它们,'
但没有找到任何东西。
正则表达式字符串正在工作,只是这些引号不是。我试图照顾一些像 space-->/s 这样的替代品,但没有找到任何东西。
要转义字符串中的引号,请将它们加倍:
string regex = @"<li\sclass=""f""(.*?)</li>";
我还稍微“修复”了您的正则表达式,但使用正则表达式解析 HTML 仍然不是一个好主意。
使用盾牌符号
@""""; //"
"\""; //"
您没有转义引号,但无论如何都不应该使用正则表达式来解析 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);
}
}