我只需找到可能有或没有属性的空<i>
标签。
这与<i>
匹配,但也与<img>
和<input>
匹配:
<i[^>]*[^>]*></[^>]*>
如何仅匹配<i>
代码?
答案 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;
}
i:empty {
border:1px solid #000;
}
&#13;
<i class="someclass"></i>
<i></i>
<i class="someclass">not empty</i>
<i>not empty</i>
&#13;