当谈到正则表达式时,我是一个真正的大诺贝尔,所以请耐心等待我。我想创建一个可以选择所有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
答案 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
所以为了改进新的正则表达式,我希望:
对不起详细信息的崩溃列表。 :(