-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 敏捷包来实现解决方案:regex to get value of inside a specific TD in HTML

于 2012-09-01T00:25:36.650 回答