0

このパターンは、二重引用符を元に戻していないかのようにエラーを出し続けます。「ゲン」を掴もうとしている

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

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 に答える