gsub все символы от начала многострочной строки, предшествующей указанным символам - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть большая многострочная строка, которая является элементом скрипта со страницы HTML, и я хочу извлечь из нее некоторые данные.

Есть строка, в которой есть данные, которые мне нужны:

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

Мне нужна только часть между первым [ и последним ].

1 Ответ

0 голосов
/ 05 февраля 2019

Давайте сначала создадим вашу «многострочную строку», чтобы мы могли проверить это:

> 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

Это работает.Hurray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...