如何在ruby中从字符串中剪切短语?

如何在ruby中从字符串中剪切短语?,ruby,string,nokogiri,Ruby,String,Nokogiri,我不确定我的名字。我用nokogiri得到了一个HTML页面。现在我想从那页上剪下一些标签。在将html转换成字符串后,我尝试使用ruby的delete方法——尽管它删除了我输入的所有字母。我得到的最好结果是使用.gsub(“”,),尽管它仍然留下一些空间。有没有可能真的剪断一根绳子?特定的药物? 另一个问题-我可以删除空格吗 到目前为止我所做的: doc = Nokogiri::HTML(open("http://www.example.com/")) tester = doc.css(".e

我不确定我的名字。我用nokogiri得到了一个HTML页面。现在我想从那页上剪下一些标签。在将html转换成字符串后,我尝试使用ruby的delete方法——尽管它删除了我输入的所有字母。我得到的最好结果是使用
.gsub(“”,)
,尽管它仍然留下一些空间。有没有可能真的剪断一根绳子?特定的药物? 另一个问题-我可以删除空格吗

到目前为止我所做的:

doc = Nokogiri::HTML(open("http://www.example.com/"))
tester = doc.css(".example").to_s.gsub('<div class="example">', '')
doc=Nokogiri::HTML(打开http://www.example.com/"))
tester=doc.css(“.example”)。到_.gsub(“”,“”)

我建议尝试在xml树级别执行此操作,而不是进行字符串编辑。 我认为nokogiri api为您提供了一些实现这一点的工具

另一种方法可能是使用css或xpath选择所需的数据,而不是删除不需要的部分

还有一个xpath函数用于规范化字符串中的空间,下面是一个示例

一些nokogiri帮助:

  • /

查看Nokogiri的教程。特别是,你想要阅读

Nokogiri的XML访问器非常友好,因为您不需要使用XPath。您还可以使用CSS访问器,对于那些整天不使用XML的人来说,它们可以提供很多帮助

在这个特定的例子中,他们使用
at_css
方法,搜索目标的第一个匹配项。您有许多替代方法,它们是同义词:
at
%
at_css
at_xpath
处理“查找第一个”案例<代码>搜索,
css
xpath
/
类似地处理“查找所有事件”

例如:

require 'nokogiri'

html = '<h1>Snap, Crackle and Pop</h1>'

doc = Nokogiri::HTML(html)
h1 = doc.at('h1') 
h1.content = h1.content[0, h1.content.length - 3] + '...'

puts doc.to_html

>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
>> <html><body><h1>Snap, Crackle and ...</h1></body></html>
需要“nokogiri”
html='Snap、Crackle和Pop'
doc=Nokogiri::HTML(HTML)
h1=单据日期('h1')
h1.content=h1.content[0,h1.content.length-3]+'…'
将文档放入html
>> 
>>啪的一声,噼啪的一声,然后。。。

这将在Nokogiri中创建一个新的HTML文档,搜索前一个H1,并修剪其内容中的尾部三个字符,用省略号替换它们。

。对不起,拼写错误。你能给出一些简单的真实输入和输出数据吗?这可以解释你在这里想要实现什么目标吗?如果你需要帮助,请照Dogbert说的做。您的问题还不够清楚。我如何在xml树级别执行此操作?我很想理解这一点,但我并没有真正理解nokigiri的XMLAPI…它会返回一个节点集,然后像树一样导航。我在答案中添加了一些教程链接。API可能很棘手,但要花一些时间(在IRB中)使用它,如果您再次在Ruby中使用HTML或XML解析(以及许多其他库在后台使用它),您会发现它非常有用。+1用于处理XML树。如果您开始使用XML/HTML进行正则表达式,您会遇到很多麻烦。知道Nokogiri非常重要,在任何语言中遍历/替换标记几乎都是一样的。