仅匹配特定标记

时间:2016-08-30 17:15:38

标签: html css regex

我只需找到可能有或没有属性的空<i>标签。

这与<i>匹配,但也与<img><input>匹配:

<i[^>]*[^>]*></[^>]*>

如何仅匹配<i>代码?

3 个答案:

答案 0 :(得分:2)

您只需将正则表达式的最后一部分更改为</i>即可。这样它就不会最终选择输入和img

<i[^>]*[^>]*></i>

编辑:
要捕获的版本并包含 <i> 标记之间的任何空格。 也可以捕获其他标记,例如<img>

<i(?:\h|)+[^>]*>(\h+)*<\/i>

将抓住<i> </i><i></i>
不会抓住<img> (也逃脱了最后的斜线)

答案 1 :(得分:2)

尝试

<i( [^>]+)?><\/i>

空格确保仅匹配i个标记,而不是以“i”开头的其他标记。

答案 2 :(得分:2)

使用CSS :empty pseudo-class。例如:

i:empty {
  border:1px solid #000;
}

&#13;
&#13;
i:empty {
  border:1px solid #000;
}
&#13;
<i class="someclass"></i>

<i></i>

<i class="someclass">not empty</i>

<i>not empty</i>
&#13;
&#13;
&#13;