如何用正则表达式选择td标签?

时间:2016-06-20 08:29:26

标签: html regex

我尝试通过Visual Studio搜索和替换使用正则表达式选择td标记。我使用<td (?s).*) >正则表达式,但它不起作用。

示例HTML:

<td style="width: 54pt; border-style: none solid solid; border-right-color: windowtext; border-bottom-color: windowtext; border-left-color: windowtext; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0cm 5.4pt; height: 14.25pt;" nowrap="" valign="top" width="72">

请告知。

1 个答案:

答案 0 :(得分:1)

您可以使用这个简单的正则表达式:

<td [^>]*>

如果属性是可选的,请使用

<td(?: [^>]*)?>

<td [^>]*>匹配<td后跟一个空格,除>以外的零个或多个字符,直到第一个>(?:...)?是一个可选的非捕获组,可以使<td>之间的文本匹配。

如果>可以在<td>个节点中显示为文字,请使用[^<]*?代替[^>]*

还有一点需要注意:如果<td出现一行,其余行在下一行(或更多行),请使用[\s\r]+代替文字空间:

<td(?:[\s\r]+[^>]*)?>

事实上,VS搜索和替换正则表达式与\s的回车符不匹配。