0

<li class="f"との間にあるすべてのものを取得する正規表現文字列をコードで実行しようとしています</li>

string regex = @"\<li\sclass="f"(\s*?.*?)*?\</li>";

しかし、引用符のために構文が間違っています。それらを just に置き換えてみました' が、何も見つかりませんでした。

正規表現文字列は機能していますが、そうでないのはこれらの引用符だけです。space-->/s のような置換を探していましたが、何も見つかりませんでした。

4

3 に答える 3

1

文字列内の引用符をエスケープするには、それらを二重にします。

string regex = @"<li\sclass=""f""(.*?)</li>";

また、正規表現を少し「修正」しましたが、HTML の解析に正規表現を使用することはまだ良い考えではありません。

于 2012-07-23T10:20:41.287 に答える
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);
    }
}
于 2012-07-23T10:53:05.490 に答える
0

盾のシンボルを使用する

@""""; //"

"\""; //"

于 2012-07-23T10:22:38.803 に答える