-3

このテーブルをイメージしてください:

<table cellpadding="0" border="0">
<tr class="someclass">

<td>blah blah THISISIMPORTANT blah blah</td>

</tr>
</table>

「THISISIMPORTANT」を含む innerHTML を持つ TD を持つテーブルのみを選択したいと考えています。

これは、C# の正規表現で行う必要があります

これは私が試したことです:

<table\s*.*?\s*>\s*.*?\s*<td\s*.*?\s*>\s*.*?\s*</td>\s*.*?\s*</table>
4

2 に答える 2

2
/<table[^>]*>(?:.(?!<\/table>))*<td[^>]*>(?:.(?!<\/td>))*THISISIMPORTANT.*?<\/td>.*?<\/table>/

近いです...つまり、タグ内で誰も>"を使用しない限り、問題ありません。しかし、正規表現よりも良い方法を見つける必要があります。

于 2012-09-01T00:39:42.973 に答える
0

HTML Agility Packを使用しないのはなぜですか? HTML を非常によく解析し、LINQ もサポートしているため、必要なものを実装するのは簡単です。

必要なテキストを正規表現で解析できますが、常に完全に形成され、同じ特定の形式などであると想定する必要があるため、コードの保守が困難になります。

編集:私は、HTMLアジリティパックを使用してソリューションを実装する方法を示すコードサンプルで、あなたとほぼ同じ別の質問を見つけました: HTMLで特定のTD内の値を取得するための正規表現

于 2012-09-01T00:25:36.650 に答える