4

Rails 3.2 を使用しています。すべてのテキストとタグを削除したいのです<b>が、タグのみを削除する方法を見つけることができました.:

string = "
  <p>
    <b>Section 1</b>
    Everything is good.<br>
    <b>Section 2</b>
    All is well.
  </p>"
string.strip_tags
# => "Section 1 Everthing is good. Section 2 All is well."

私はこれを達成したい:

"Everthing is good. All is well."

正規表現マッチングも追加する必要がありますか?

4

4 に答える 4

3

このタスクには、HTML/XML パーサーを使用する方がはるかに優れています。Ruby にはネイティブのものはありませんが、Nokogirilibxml/xslt をラップする優れものです。

doc = Nokogiri::XML string
doc.xpath("//b").remove
result = doc.text # or .inner_html to include `<p>`
于 2013-10-28T14:38:41.027 に答える
1

できるよstring.gsub(/<b>.*<\/b>/, '')

http://rubular.com/r/hhmpY6Q6fX

于 2013-10-28T14:44:09.680 に答える