从多行字符串前述指定的字符开始GSUB所有字符

问题描述 投票:-2回答:1

我有一个大的多串,这是从一个HTML页面的脚本元素,我想从中提取一些数据。

有有我需要的数据线:

var skuProducts=[{"skuAttr":"200007763:201336100;491:200004763#145cm","skuPropIds":"201336100,200004763","skuVal":{"actSkuBulkCalPrice":"313.64"}}];

我只需要前[和最后]之间的部分。

ruby
1个回答
0
投票

让我们来创建你的“多行字符串”第一,所以我们可以测试:

> page = %(hello\nvar skuProducts=[{"skuAttr":"200007763:201336100;491:200004763#145cm","skuPropIds":"201336100,200004763","skuVal":{"actSkuBulkCalPrice":"313.64"}}];\nworld\n)

好了,现在让我们来提取使用正则表达式中的数据:

> skudata = page[/var skuProducts=\[(.+?)\];/, 1]
> puts skudata.inspect
{"skuAttr":"200007763:201336100;491:200004763#145cm", "skuPropIds":"201336100,200004763","skuVal":{"actSkuBulkCalPrice":"313.64"}}

是的看起来正确的,我们或许可以在它读成JSON:

> require 'json'
> data = JSON.load(skudata)
> puts data["skyPropIds"]
201336100,200004763

有用。欢呼。

© www.soinside.com 2019 - 2024. All rights reserved.