簡體   English   中英

用空格替換html標簽

[英]Replace html tags with whitespaces

我正在使用方法strip_tags從我的字符串中刪除所有標簽,但是在刪除了一些缺少空格的文本之后,特別是在1個標簽結束而另一個標簽開始的情況下。 有沒有辦法在刪除標簽的地方插入空格? 尋找前。 下面

str
 => "<span>Class GOesHere</span><div>SomeExtra Tag</div>" 

helper.strip_tags(str)
 => "Class GOesHereSomeExtra Tag" 

我建議解析HTML並提取文本。 Nokogiri ,一個非常着名的寶石應該可以幫助解決這個問題:

require 'nokogiri'
=> false
> str = "<span>Class GOesHere</span><div>SomeExtra Tag</div>"
=> "<span>Class GOesHere</span><div>SomeExtra Tag</div>"
> Nokogiri::HTML(str).text
=> "Class GOesHereSomeExtra Tag"

更新

這將搜索html中的所有文本節點並映射文本內容。 結果數組與空格分隔符連接:

> Nokogiri::HTML(str).xpath('//text()').map(&:text).join(' ')
=> "Class GOesHere SomeExtra Tag"

嘗試使用這樣的正則表達式:

str.gsub!(/<.*?>/, " ")
# => " Class GOesHere  SomeExtra Tag "
str
 => "<span>Class GOesHere</span><div>SomeExtra Tag</div>"

例如,您可以在條帶標記之前更改字符串

str.gsub!('><', '> <')

它應該產生

str
 => "<span>Class GOesHere</span> <div>SomeExtra Tag</div>" 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM