[英]Remove HTML tags + content
好吧,聽起來很簡單,我仍然無法弄清楚如何做到這一點(想象一下,我甚至決定改變語言)。
所以,我有簡單的文本或包含一些標簽的文本( 注意 :有些可能不被視為有效的 html標簽,例如<ref>
),我想要刪除所有標簽及其內容。
嘗試使用Nokogiri的.search .search("//text()").text
但它仍然遠非我所需要的。
想法?
PS我正在尋找一個防彈,100%工作的解決方案,所以RegEx是不可能的......
樣本輸入/輸出
One <!-- Two -->Three
應該回歸One Three
。
This is <a href='#'>some Text</a>
應該返回This is
。
Even more <ref name='tag'>reference</ref><br>text
應該返回Even more text
。
Nokogiri對於手頭的問題似乎有些過分,我會用正則表達式來解決它,如下所示
input = "One <!-- Two -->Three"
input.gsub(/(\<.+\>)/)
#=> "One Three"
input = "This is <a href='#'>some Text</a>"
input.gsub(/(\<.+\>)/, "")
#=> "This is "
input = "Even more <ref name='tag'>reference</ref><br>text"
input.gsub(/(\<.+\>)/, "")
#=> "Even more text"
關於rubular的演示
如果您想使用Nokogiri執行此操作,則必須使用DocumentFragment
類,因為該文本不是有效的HTML或XML文檔。
doc = Nokogiri::HTML::DocumentFragment.parse(text)
puts doc.xpath("text()")
這為您提供了指定的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.