0

基本的に、次のような文字列があります。

<table><tr class="even"><td></td><td></td></tr><tr class="odd"><td></td><td></td></tr></table> 

Regex.Matches (c#) を使用して各テーブル行を取得したい

私の正規表現パターンは何ですか?

私は次のことを試しましたが、おそらくかなり間違っていると思います:

"<tr"(.*)"</tr>" 
[<][t][r](.*)[<][/][t][r][>]" 

それでも

[t][r].*[t][r]

0 の一致を与えます。

何か案が?

どうもありがとう!

4

4 に答える 4

0
 var str = "<table><tr class=\"even\"><td></td><td></td></tr><tr class=\"odd\"><td></td><td></td></tr></table>";
 string[] trs = Regex.Matches(str, @"<tr[^>]*>(?<content>.*)</tr>", RegexOptions.Multiline)
             .Cast<Match>()
             .Select(t => t.Groups["content"].Value)
             .ToArray();

「trs」配列は、<td></td><td></td>2 回を含む結果です。

編集:この正規表現は、a の欠落に対して回復力がありません</tr>(どのブラウザーでも問題なく表示されます)。これは、否定的な先読みを使用して解決できます

于 2013-11-11T17:34:40.220 に答える