0

这种模式一直给我错误,就好像它没有退出双引号一样。我正在尝试抓住“Gen”

string str = "<div type=\"book\" osisID=\"Gen\">";

Match m = Regex.Match(str, @"<div type=\"book\" osisID=\"(.*?)\">", RegexOptions.IgnoreCase);

if (m.Success) {    
    Console.Write(m.Groups[1].Value);
}
4

3 回答 3

3

使用 XML 解析机制解析 XML:

var doc = XDocument.Parse(xml)
var root = doc.Root
var osisId = root.Attribute("osisID").Value;
于 2013-04-01T21:42:03.667 回答
3

在 C# 逐字字符串中,您可以使用另一个引号而不是反斜杠来转义引号:

 @"<div type=""book"" osisID=""(.*?)"">"
于 2013-04-01T21:45:24.047 回答
1

假设您有比刚刚发布的更复杂的 html 并且已经阅读过这个

string str = "<div type=\"book\" osisID=\"Gen\">";

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(str);
var osisID = doc.DocumentNode
                .SelectSingleNode("//div[@type='book']")
                .Attributes["osisID"]
                .Value;

PS:HTMLAgilityPack

于 2013-04-01T21:45:26.047 回答