Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Ruby中使用正则表达式来忽略HTML标记?_Ruby On Rails_Ruby_Regex - Fatal编程技术网

Ruby on rails 如何在Ruby中使用正则表达式来忽略HTML标记?

Ruby on rails 如何在Ruby中使用正则表达式来忽略HTML标记?,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我在Rails应用程序中有一个博客ActiveRecord模型。body属性是text。它包括图像、标题等的HTML标记。我想创建一个方法,将正文的前n个文本量作为预览文本显示在索引页上 问题是我的方法还抓取了所有HTML标记,因此我的方法返回一个如下所示的字符串: Here is a picture I am talking about. <img src="path/to/image.png" / > <h1> Nice </h1> 这是我正在谈论的一张

我在Rails应用程序中有一个博客ActiveRecord模型。body属性是text。它包括图像、标题等的HTML标记。我想创建一个方法,将正文的前n个文本量作为预览文本显示在索引页上

问题是我的方法还抓取了所有HTML标记,因此我的方法返回一个如下所示的字符串:

Here is a picture I am talking about. <img src="path/to/image.png" / > <h1> Nice </h1>
这是我正在谈论的一张图片。美好的
是否存在忽略所有标记的正则表达式解决方案?

Rails有一个方法

strip_标签(“剥离这些标签!”)
#=>去掉这些标签!
带标签(“不再加粗!”)
#=>不要再大胆了!在这里看到更多。。。
去除标签(“欢迎访问我的网站!”)
#=>欢迎访问我的网站!
Rails有一个方法

strip_标签(“剥离这些标签!”)
#=>去掉这些标签!
带标签(“不再加粗!”)
#=>不要再大胆了!在这里看到更多。。。
去除标签(“欢迎访问我的网站!”)
#=>欢迎访问我的网站!

您不想尝试使用regex来剥离标签;HTML太复杂了,你想用你的时间做更好的事情,而不是维护一个正则表达式。下面是一个使用Nokogiri的非Rails解决方案:

require 'nokogiri'

text = 'Here is a picture I am talking about. <img src="path/to/image.png" / > <h1> Nice </h1>'

doc = Nokogiri::HTML::DocumentFragment.parse(text)
doc.text # => "Here is a picture I am talking about.   Nice "
需要“nokogiri”
text='这是我正在谈论的图片。很好
doc=Nokogiri::HTML::DocumentFragment.parse(文本)
doc.text#=>“这是我正在谈论的一张图片,很好”

您不想尝试使用regex来剥离标签;HTML太复杂了,你想用你的时间做更好的事情,而不是维护一个正则表达式。下面是一个使用Nokogiri的非Rails解决方案:

require 'nokogiri'

text = 'Here is a picture I am talking about. <img src="path/to/image.png" / > <h1> Nice </h1>'

doc = Nokogiri::HTML::DocumentFragment.parse(text)
doc.text # => "Here is a picture I am talking about.   Nice "
需要“nokogiri”
text='这是我正在谈论的图片。很好
doc=Nokogiri::HTML::DocumentFragment.parse(文本)
doc.text#=>“这是我正在谈论的一张图片,很好”

Wow。太方便了,哇。那太方便了。