HTML Regexp选择器

时间:2011-04-26 17:30:24

标签: html regex css-selectors

当谈到正则表达式时,我是一个真正的大诺贝尔,所以请耐心等待我。我想创建一个可以选择所有HTML标签的正则表达式。我有以下选择器......

/<([A-Z][A-Z0-9]*)\\b[^>]*>(.*?)</\\1>/gi

...这对于像这样的标签非常有用......

<p>Paragraph</p>
<span>Span</span>
<p><a href="link.php">Link</a></p>

...但它不能选择这样的标签:

<img src="picture.jpg" />

有人可以指导我如何修复上面的正则表达式,以便我可以在一次干净的移动中选择两种样式的HTML标记吗?

感谢您的时间,
spryno724

2 个答案:

答案 0 :(得分:1)

嗯。好的,所以你正在寻找类似的东西:

/</?([a-z][a-z0-9]*)[^<>]*>/

答案 1 :(得分:1)

编辑:我最后使用Flash的XML功能来阅读HTML。不需要RegExp选择器!

这是我的ActionScript

var evaluatedInput:RegExp = new RegExp('<([A-Z][A-Z0-9]*)\\b[^>]*>(.*?)</\\1>', 'gi');
var result:Object = evaluatedInput.exec("<p>Hi!</p><span>Hi!</span><table><tbody><tr><td>Hi!</td></tr></tbody></table><img src=\"nice.jpg\" />");

while (result != null) {             
  trace (result);
  result = evaluatedInput.exec("<p>Hi!</p><span>Hi!</span><table><tbody><tr><td>Hi!</td></tr></tbody></table><img src=\"nice.jpg\" />");
}

我的输出窗口中的内容正是我想要的,只选择了顶级标签:

<p>Hi!</p>,p,Hi!
<span>Hi!</span>,span,Hi!
<table><tbody><tr><td>Hi!</td></tr></tbody></table>,table,<tbody><tr><td>Hi!</td></tr></tbody>

使用上面建议的正则表达式我得到:

<p>,p
</p>,p
<span>,span
</span>,span
<table>,table
<tbody>,tbody
<tr>,tr
<td>,td
</td>,td
</tr>,tr
</tbody>,tbody
</table>,table
<img src="nice.jpg" />,img

所以为了改进新的正则表达式,我希望:

  • 仅选择顶级HTML标记,而不是嵌套标记
  • 返回刚刚选择的标签和标签属性
  • 返回所选标签的内容,HTML和全部内容

对不起详细信息的崩溃列表。 :(