此正則表達式來自阿特伍德,用來過濾掉比href和標題之外的任何錨標籤:我該如何解決這個正則表達式來允許一個特定的字符串?
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")?\s?>
我需要允許專門匹配時附加屬性:目標=「_空白」。所以下面的網址應該被允許:
<a href="http://www.google.com" target="_blank">
我想變着花樣這些:
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget="_blank")?\s?>
<a\shref="(\#\d+|(https?|ftp)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+)"(\stitle="[^"]+")(\starget=\"_blank\")?\s?>
顯然,我不知道正則表達式非常好。應該如何調整模式以允許空白目標和其他目標?
你不應該使用正則表達式來解析HTML:http://stackoverflow.com/questions/1732348/regex-match -open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-03-16 19:53:36
爲什麼多數民衆贊成在某種程度上是一個有趣的答案,它似乎有點愚蠢地採取字面和所有情況下。我使用它是一個簡單的消毒程序,只是爲了確保一些基本的標籤是允許的。即使我*不是這樣,正則表達式似乎也完成了這個任務。 ;) – 2010-03-16 20:10:58