我正在尝试在我的代码中运行一个正则表达式字符串,它会拾取<li class="f"
和</li>
之间的所有内容
string regex = @"\<li\sclass="f"(\s*?.*?)*?\</li>";
但由于引号,语法错误。我尝试用'
替换它们
但它没有找到任何东西。
正则表达式字符串正在按顺序工作,而不是这些引号。我试图照看像空格这样的替换 - &gt; / s并没有找到任何东西。
答案 0 :(得分:1)
要转义字符串中的引号,请将它们加倍:
string regex = @"<li\sclass=""f""(.*?)</li>";
我还“修复”了你的正则表达式,但使用正则表达式解析HTML仍然不是一个好主意。
答案 1 :(得分:0)
使用盾牌符号
@""""; //"
"\""; //"
答案 2 :(得分: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);
}
}