2011-04-26 105 views
2

對於正則表達式,我是一個真正的大noobie,所以請耐心等待。我想創建一個可以選擇所有HTML標籤的正則表達式。我有以下選擇...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

雖然直接相反的http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454,兩個問題都有相同的答案 – BoltClock 2011-04-26 17:32:27

+1

Oh,Bolt,I love that post。LOL – omninonsense 2011-04-26 17:42:32

+2

喜劇評論無助於用戶,只是普通的意思 – tchrist 2011-04-26 19:51:32

回答

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和所有的標籤就選擇
的標記和標記屬性

對不起,詳細的故障列表。 :(

+0

我建議尋找一個XHTML解析器或其他東西。這樣做與正則表達式將是可能的,但真的,真的很不愉快。 – omninonsense 2011-04-26 18:48:36

+0

好的,謝謝你的指點! – 2011-04-27 00:05:28

1

嗯。好了,你正在尋找的東西,如:

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

:從那裏你將如何使用他們,如果你有一個HTML文件,所有的標籤都包含鱈的''和''標籤同時,你的模式與嵌套標籤打交道時失敗。嗯...關閉但它不會選擇''標籤。:( – 2011-04-26 17:42:38

+1

呃...是的。你在用什麼語言? – 2011-04-26 17:44:59

+0

我認爲應該。 o: – omninonsense 2011-04-26 17:47:16