2013-11-04 26 views
-1

我想写一个正则表达式,看是否字符串包含任何典型的表标签:正则表达式匹配任何表标签

<table></table> 
<td></td> 
<th></th> 
<tr></tr> 
<thead></thead> 
<tfoot></tfoot> 
<tbody></tbody> 

随着可能含有其他属性的标签,例如:

<table border="1"> 

我想出这个到目前为止,然而,它匹配<br />标签,我不知道为什么:

/<\/?[table|td|th|tr|tfoot|thead|tbody]{1,}>?/ 

http://www.rexfiddle.net/20Xtqka

+0

由于方括号和“tr”,它匹配br。您只是说,至少将其中一个字符与方括号相匹配 – jpmuc

回答

0

正则表达式使用圆括号而不是方括号来分组。方括号内的一组字符匹配任何这些字符。

/<\/?(table|td|th|tr|tfoot|thead|tbody)+>?/ 

当你想匹配的东西1以上,使用+而非{1,}

+0

使用正则表达式解析HTML的基本概念存在缺陷。请参阅[this](http://stackoverflow.com/a/1732454/127145)。谢谢! –

+0

这应该是对原始问题的评论,而不是我的回答。 – Barmar