ruby – 如何从字符串中删除HTML编码字符?

我有一个包含一些 HTML编码字符的字符串,我想删除它们:
"<div>Hi All,</div><div class=\"paragraph_break\">< /></div><div>Starting today we are initiating PoLS.</div><div class=\"paragraph_break\"><br /></div><div>Please use the following communication protocols:<br /></div><div>1. Task Breakup and allocation - Gravity<br /></div><div>2. All mail communications - BC messages<br /></div><div>3. Reports on PoC / Spikes: Writeboard<br /></div><div>4. Non story related tasks: BC To-Do<br /></div><div>5. All UI and HTML will communicated to you through BC.<br /></div><div>6. For File sharing,we'll be using DropBox.<br /></div><div>7. Use Skype for lighter and generic desicussions. However,in case you need any approvals,data for later reference,etc,then please use BC. PoLS conversation has been created on skype.</div><div class=\"paragraph_break\"><br /></div><div>You'll have been given necessary accesses to all these portals. Please start using them judicIoUsly.</div><div class=\"paragraph_break\"><br /></div><div>All the best!</div><div class=\"paragraph_break\"><br /></div><div>Thanks,<br /></div><div>Saurav<br /></div>"

解决方法

你想做的事情是多方面的.也许看看你为什么要这样做会有所帮助.通常当我想删除编码的HTML时,我想恢复HTML的内容. Ruby有一些模块可以让它变得简单.
require 'cgi'
require 'nokogiri'

html = "<div>Hi All,<br /></div><div>Saurav<br /></div>"

puts CGI.unescapeHTML(html)

哪个输出

<div>Hi All,</div><div class="paragraph_break">< /></div><div>Starting today we are initiating PoLS.</div><div class="paragraph_break"><br /></div><div>Please use the following communication protocols:<br /></div><div>1. Task Breakup and allocation - Gravity<br /></div><div>2. All mail communications - BC messages<br /></div><div>3. Reports on PoC / Spikes: Writeboard<br /></div><div>4. Non story related tasks: BC To-Do<br /></div><div>5. All UI and HTML will communicated to you through BC.<br /></div><div>6. For File sharing,we'll be using DropBox.<br /></div><div>7. Use Skype for lighter and generic desicussions. However,then please use BC. PoLS conversation has been created on skype.</div><div class="paragraph_break"><br /></div><div>You'll have been given necessary accesses to all these portals. Please start using them judicIoUsly.</div><div class="paragraph_break"><br /></div><div>All the best!</div><div class="paragraph_break"><br /></div><div>Thanks,<br /></div><div>Saurav<br /></div>

如果我想更进一步并删除标签,检索所有文本:

puts Nokogiri::HTML(CGI.unescapeHTML(html)).content

输出

Hi All,Starting today we are initiating PoLS.Please use the following communication protocols:1. Task Breakup and allocation - Gravity2. All mail communications - BC messages3. Reports on PoC / Spikes: Writeboard4. Non story related tasks: BC To-Do5. All UI and HTML will communicated to you through BC.6. For File sharing,we'll be using DropBox.7. Use Skype for lighter and generic desicussions. However,then please use BC. PoLS conversation has been created on skype.You'll have been given necessary accesses to all these portals. Please start using them judicIoUsly.All the best!Thanks,Saurav

当我看到那种字符串时,这是我通常想要的地方.

Ruby的CGI使编码和解码HTML变得容易. Nokogiri宝石可以轻松删除标签.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...