RegEx匹配双引号

时间:2013-04-01 21:39:26

标签: c# xml regex double-quotes

这种模式一直给我错误,好像它没有退出双引号。我想抓住“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);
}

3 个答案:

答案 0 :(得分:3)

使用XML解析机制来解析XML:

var doc = XDocument.Parse(xml)
var root = doc.Root
var osisId = root.Attribute("osisID").Value;

答案 1 :(得分:3)

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

 @"<div type=""book"" osisID=""(.*?)"">"

答案 2 :(得分:1)

假设你的html比你刚刚发布的更复杂,并且已经阅读this

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