たとえば、次の HTML 文字列を解析しているとします。
<html>
<head>
RANDOM JAVASCRIPT AND CSS AHHHHHH!!!!!!!!
</head>
<body>
<table class="table">
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
<tr><a href="/subdir/members/Name">Name</a></tr>
</table>
<body>
</html>
**の内容を分離したい(テーブルクラス内のすべて)
さて、これを達成するために正規表現を使用しました:
string pagesource = (method that extracts the html source and stores it into a string);
string[] splitSource = Regex.Split(pagesource, "<table class=/"member/">;
string memberList = Regex.Split(splitSource[1], "</table>");
//the list of table members will be in memberList[0];
//method to extract links from the table
ExtractLinks(memberList[0]);
この抽出を行う他の方法を調べていたところ、C# の Match オブジェクトに出会いました。
私はこのようなことをしようとしています:
Match match = Regex.Match(pageSource, "<table class=\"members\">(.|\n)*?</table>");
上記の目的は、うまくいけば2つの区切り文字間の一致値を抽出することでしたが、実行しようとすると一致値は次のようになります。
match.value = </table>
私の質問は、次のとおりです。正規表現を使用した方法よりも少し簡単/読みやすい/短い文字列からデータを抽出する方法はありますか? この単純な例では、正規表現は問題ありませんが、より複雑な例では、画面全体に落書きに相当するコーディングが表示されます。
非常にきちんとした整頓されたクラスのように見えるので、私は本当にマッチを使いたいと思っていますが、私のニーズに合わせて動作させることができないようです. 誰でもこれで私を助けることができますか?
どうもありがとうございました!