我有这段 HTML 代码,它在一行中:
<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>
这是行友好的版本(我不能使用)
<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>
<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>
我正在尝试使用此正则表达式仅提取 URL
/<h3 class="r"><a href="(.*)">(.*)<\/a>/
它返回
www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com"
当找到 "时,我能做些什么来阻止它?
最佳答案
叹息。正则表达式和 HTML 是如此尴尬的同床异梦:
require 'nokogiri'
html = %q{<h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3><h3 class='r'><a href="www.google.com">fkdsafjldsajl</a></h3>}
doc = Nokogiri::HTML(html)
puts doc.css('a').map{ |a| a['href'] }
# >> www.google.com
# >> www.google.com
这会找到它们,无论它们是深度嵌套还是全部在一行上。
关于ruby - Ruby 正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716787/