arrays - 正则表达式匹配给定数据中的最后一个值

标签 arrays ruby regex linux shell

我从 URL 获取数据,并正在处理数据以检查一些条件。 URL 中的数据如下所示:

1528190345":100,"1528190346":100,"1528190368":100,"1528190414":100,"1528190439":99,"1528190440":99,"1528190463":100, “1528190485”:100,“1528190508”:100,“1528190550”:100,“1528190575”:100,“1528190576”:100,“1528190599”:100,“1528190600”:100,“152 8190622":100,"1528190667":100,"1528190688":100,"1528190689":100,"1528190712":100,"1528190736":100,"1528190762":100,"1528190 785":100,"1528190786":100,"1528190807":100,"1528190828":100,"1528190853":100,"1528190877":100,"1528190901":100,"1528190925":100,"1528190948":100,"1528190968":100,"1528190991":100}}]

====

我也将其转换为 JSON

{"metric"=>"Insta_real-unique_value"、"tags"=>{"host"=>"letme.quickly.com"、"tier"=>"2"、"device"=>"tester1"、"dc"=>"xxx"}、"aggregateTags"=>["device_name"、"device_ip"]、"dps"=>{"1526972408"=>100, "1526972424"=>100、"1526972440"=>100、"1526972456"=>100、"1526972472"=>100、"1526972488"=>100、"1526972504"=>100、"1526972520"=>1 00, "1526972536"=>100, "1526972552"=>100, "1526972568"=>100, "1526972569"=>100, "1526972584"=>100, "1526972585"=>100, "1526972601"=>100, "1526972617"=>100, "1526972633"=>100, "1526972649"=>100, "1526972665"=>100, "1526972681"=>100}}

我想提取对应于 100 的值。当我这样做时:

url = "#{URL}"
uri = URI(url)
response = Net::HTTP.get(uri)
value = response[-6..-4]
puts value

我得到了最后一个值,但是当最后一个值更改为 99/9/0 时,它会打印 :99":9

有没有办法获得准确的值?

最佳答案

处理 JSON 数据时,正确解析数据几乎总是比对字符串使用正则表达式更好。

在这种情况下,我们可以这样做:

JSON.parse(response)['dps'].values.last #=> 100

关于arrays - 正则表达式匹配给定数据中的最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50696916/

相关文章:

c++ - 如何解决C++中的线性搜索问题?

php - 我应该将哪个 session 库与 CodeIgniter 一起使用?

javascript - 将一个数组与另一个数组进行比较,以确保第二个数组不包含不同的值

ruby-on-rails - 如何将 Twitter 搜索提要添加到我的 Ruby on Rails 应用程序?

ruby - 命名空间类在与模块相同的命名空间/同名下的含义是什么

JavaScript:在空间上划分数组元素并添加到同一个列表

ruby-on-rails - 在 Rails 4 和 ActiveRecord 中构建范围搜索

python - 从 Python 中的给定字符串中删除所有形式的 URL

php - 正则表达式在它们之间有空格时加入数字

java - String.matches 每次测试都失败?