从字符串中捕获字符

时间:2017-12-21 18:01:46

标签: ruby-on-rails ruby

如果我有这个字符串:

"<div class='name-and-date'><strong>Bartholome Hilpert MD - Dec 21, 
12:38 PM Eastern</div></strong><div class='note-contents'>- 
another</div><div> Attachment: <p class='attachment'>N/A</p></div></span>"

如何捕获此值:

N/A

如您所见,我想要扫描<p class='attachment'>

的值

尝试:

conversation.scan(/<p class='attachment'>/)

但这并没有得到p标签中的值。

3 个答案:

答案 0 :(得分:4)

如果你想经常这样做,我会考虑使用像Nokogiri这样的HTML解析器,因为为每一个这样的需求编写正则表达式都很痛苦。

require 'nokogiri'

html = Nokogiri::HTML("<div class='name-and-date'><strong>Bartholome Hilpert MD - Dec 21, 12:38 PM Eastern</div></strong><div class='note-contents'>- another</div><div> Attachment: <p class='attachment'>N/A</p></div></span>")
html.at_css('p.attachment').text # => "N/A"

答案 1 :(得分:2)

您可以将N/A

匹配
conversation[/(?<=<p class='attachment'>).*?(?=<\/p>)/]                          
 #=> "N/A" 

答案 2 :(得分:2)

试试这个

conversation.scan(/(?<=<p class='attachment'>).*?(?=<\/p>)/).first