我正在使用:
<ul class="ont-bd-phone">[\s\S]+<li>[\s\S]+T: ([^$]+?)[\s\S]+<\/li>[\s\S]+<\/ul>
从
获取020 3514 0019
<ul class="ont-bd-phone">
<li>
T: 020 3514 0019
</li>
</ul>
但是返回的唯一匹配组是'0'而不是整数。我不确定如何在使用$
之外捕获行尾。作为新手,我如何处理具有大量空格/换行符的HTML。
我正在使用Rubular来检查我的工作。
答案 0 :(得分:6)
在开始抛出正则表达式之前,一定要使用可以读取HTML / XML的东西。使用像Nokogiri这样的东西来查找这些列表项中的内容是微不足道的。在那之后,正则表达式(如果你真的需要它)很容易。
要获得该文本,这样的内容将起作用:
require 'nokogiri'
page = # however you are getting the page content...
doc = Nokogiri::HTML(page)
li = doc.css('ul.ont-bd-phone li')
text = li.text.strip
# => T: 020 3514 0019
如果您正在寻找多个列表项,您可以映射/每个列表项以获取所有内容。 Nokogiri's documentation很棒,涵盖了很多用途。
答案 1 :(得分:-1)
从论坛?
中移除([^$]+)
或只写(.*)
<ul class="ont-bd-phone">[\s\S]+<li>[\s\S]+T: (.*)[\s\S]+<\/li>[\s\S]+<\/ul>