如果我有这个字符串:
"<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标签中的值。
答案 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