清理& 文本中的样式字符

Jer*_*ith 6 ruby ruby-on-rails

我从一个包含很多字符的Feed中获取文本:

Insignia™ 2.0 Stereo Computer Speaker System (2-Piece) - Black
4th-Generation Apple® iPod® touch
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来摆脱这些,或者我是否必须预测我要删除哪些字符并使用删除方法删除它们?此外,当我尝试删除

&
Run Code Online (Sandbox Code Playgroud)

str.delete("&")
Run Code Online (Sandbox Code Playgroud)

它留下了"amp;" 有没有更好的方法来删除这种类型的角色?我需要重新编码文本吗?

Mar*_*mas 21

String#delete肯定不是你想要的,因为它适用于字符,而不是整个字符串.

尝试

str.gsub /&/, ""
Run Code Online (Sandbox Code Playgroud)

您可能还想尝试&使用文字&符替换,例如:

str.gsub /&/, "&"
Run Code Online (Sandbox Code Playgroud)

如果这更接近你真正想要的,你可以获得最好的结果来取消HTML字符串.如果是这样试试这个:

CGI::unescapeHTML(str)
Run Code Online (Sandbox Code Playgroud)

unescapeHTML方法的详细信息在这里.