ruby-on-rails - Ruby - 使用正则表达式从字符串中去除所有 HTML 标签

标签 ruby-on-rails ruby regex format gsub

我以下面的字符串为例

"<p>Hello,</p><p><br></p><p>my name is Same</p><p><br></p><p><br></p><p>Farewell,</p><p>Same</p>"

我想从中删除所有 HTML 标签。我正在使用以下哪种方法有效

Nokogiri::HTML(CGI.unescapeHTML(@message_preview)).content

但最终还是产生了,

"Hello,my name is SameFarewell,Same"

当我想要的时候

"Hello, my name is Same Farewell, Same"

注意空格,给定一个换行符,我希望在它的位置有一个空格而不是字符串中的下一个字符。

我本来希望尝试使用 gsub 或正则表达式,但对如何实现它有点迷茫。

最佳答案

您可以在此处使用 split 传递适用于您的示例的正则表达式(s 是您的字符串)。

def wordy s
  s.split(/\<.*?\>/)
   .map(&:strip)
   .reject(&:empty?)
   .join(' ')
   .gsub(/\s,/,',')
end

s = "<p>Hello,</p><p><br></p><p>my name is Same</p><p><br></p><p><br></p><p>Farewell,</p><p>Same</p>"
t = "<p>Hello <strong>Jim</strong>,</p><p> </p><p>This is <em>Charlie</em> and<u> I wanted to say</u></p><ol><li>hello</li><li>goodby</li></ol><p> </p><p>Farewell,</p><p>Lawrence</p>"

p wordy s
#"Hello, my name is Same Farewell, Same"

p wordy t
#"Hello Jim, This is Charlie and I wanted to say hello goodby Farewell, Lawrence"

关于ruby-on-rails - Ruby - 使用正则表达式从字符串中去除所有 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47928157/

相关文章:

regex - 在文本文件中查找非空字段的索引

c# - 快速文本预处理

ruby-on-rails - Rails 中标签内的引​​用

ruby-on-rails - 在周日每小时使用 whenever gem 安排工作

ruby - Ruby 有内置的 do ... while 吗?

ruby - 从第二次出现的字符拆分字符串

css - Michael Hartel 的 Ruby on Rails 教程 7.7 中的 CSS 弃用警告

ruby-on-rails - DB in Completed in 6427ms 是什么(查看 : 6279, DB : 96) mean?

ruby - 如何使用 Ruby 匹配较长字符串中以 'H' 开头的 10 个字符的子字符串?

php - 正则表达式收集最后一个/之后的所有内容