我需要一種高效且(合理)可靠的方法從文檔中去除HTML標籤。它需要能夠處理一些相當不利的情況:剝離HTML標籤而不使用HtmlAgilityPack
- 事先並不知道文檔是否包含HTML。
- 更可能的是,任何HTML格式都會很差。
- 單個文檔可能非常大,也許數百兆字節。
- 由於任何奇怪的原因,非HTML內容可能仍然會被尖括號散佈,所以沿着
<.+/?>
的行的樸素正則表達式是不合適的。 (無論如何,剝離XML是不太理想的。)
我目前使用HTML Agility Pack,它只是不切割芥末。性能比我想要的更差,它並不總是能夠儘可能優雅地處理真正糟糕的格式化,最近我遇到了一些堆棧溢出的問題,這些問題在一些更令人生氣的大文件上出現。
我懷疑所有這些問題都源於它試圖實際解析數據,這使得它不適合我的需求。我不想要一個語法樹;我只想(大部分)標籤消失。
使用正則表達式似乎是明顯的候選。但後來我記得this famous answer,這讓我擔心這不是一個好主意。但是,謾罵的觀點非常關注解析,而不一定是愚蠢的標籤剝離。那麼正則表達式可以達到這個目的嗎?
假設這不是一個可怕的想法,那麼對於可以很好地工作的正則表達式的建議是非常受歡迎的。
我們都讀過這樣的傑作......我說的是你引用的答案:) ......無論如何我們也知道使用正則表達式來處理html數據時通常很難說。我不清楚你的意思是什麼意思,「我只是希望(大部分)標籤消失。你是指符合特定標準的特定標籤及其所有內容? – 2012-08-04 15:34:10
因爲由於正則表達式模式無法描述層次結構,因此您可能使用它們只是爲了實現你自己的解析策略,用正則表達式提取部分文本,並委託責任人保留或從最終結果中刪除它。我不知道性能......也許不好。 – 2012-08-04 15:41:00
@DiegoDeVita我的意思是我需要從流中去除HTML標籤,並保留其他內容,我說「大部分」是因爲100%的可靠性不是必須的,如果奇怪的瀏覽器特定標籤使它通過,那很好,因爲該數據被傳遞到旨在接受嘈雜數據的軟件 – 2012-08-04 18:06:00