[英]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.