如何提取整数后跟“评论”一词?

时间:2014-11-12 12:39:26

标签: ruby regex

我正在使用Ruby编写Selenium脚本,我想提取:

  

548条点评

来自

3.5 of 5  548 reviews

使用正则表达式。

3 个答案:

答案 0 :(得分:1)

这比你想象的容易得多,这表明你在问之前没有真正尝试过:

str = '3.5 of 5  548 reviews'
str[/\d+ reviews/] # => "548 reviews"

做这些事情:

答案 1 :(得分:0)

使用以下正则表达式:

/([0-9]*?) reviews/

如果您确定评论结束,那么:

/([0-9]*?) reviews$/

您可以将scan用于此目的:

a = "3.5 of 5 548 reviews"
# => "3.5 of 5 548 reviews"
a.scan(/([0-9]*?) reviews/)
# => [["548"]]

更新:万一您需要“评论”这个词。结果使用也是如此:

a.scan(/[0-9]*? reviews/)
#=> ["548 reviews"]

答案 2 :(得分:0)

您可以使用/[\d,]+\s+reviews?/。例如:

str = '3.5 of 5  548 reviews'
str.match(/[\d,]+\s+reviews?/).to_s
=> "548 reviews"