我找到了一个可以生成 ruby 正则表达式的网站。所以基本上你输入文本并单击要提取的部分:
所以我试了一下:
product.css('.crAvgStars .swSprite span').text[/([+-]?\\d*\\.\\d+)(?![-+0-9\\.])/, 1]
得到4.4
但得到了nil
。
正则表达式不起作用还是我以不正确的方式放置它?
尝试这个:
s = "4.4 out of 5 stars"
p s[/([+-]?\d*\.\d+)(?![-+0-9\.])/]
# >> "4.4"
您可以通过以下方式找到Regexp.new
:
Regexp.new('([+-]?\\d*\\.\\d+)(?![-+0-9\\.])')
# => /([+-]?\d*\.\d+)(?![-+0-9\.])/