Ruby gsub指定字符之前的多行字符串开头的所有字符
我有一个大的多行字符串,它是HTML页面中的脚本元素,我想从中提取一些数据 有一行有我需要的数据:Ruby gsub指定字符之前的多行字符串开头的所有字符,ruby,Ruby,我有一个大的多行字符串,它是HTML页面中的脚本元素,我想从中提取一些数据 有一行有我需要的数据: var skuProducts=[{"skuAttr":"200007763:201336100;491:200004763#145cm","skuPropIds":"201336100,200004763","skuVal":{"actSkuBulkCalPrice":"313.64"}}]; 我只需要第一个[和最后一个]之间的部分,让我们先创建您的“多行字符串”,以便测试: > pag
var skuProducts=[{"skuAttr":"200007763:201336100;491:200004763#145cm","skuPropIds":"201336100,200004763","skuVal":{"actSkuBulkCalPrice":"313.64"}}];
我只需要第一个[
和最后一个]
之间的部分,让我们先创建您的“多行字符串”,以便测试:
> 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
它起作用了。万岁。编写输入和所需输出的示例,它以if(!window.runParams){window.runParams={};}window.runParams.minPrice=“440.2”开头;window.runParams.maxPrice=“577.6”;然后我需要javascript结果数组进一步向下,从这一行开始var sku products=[{很多javascript“name”:“value”pairs…}}]因此,我需要去掉下面的所有内容,包括]javascript结果数组后面的多行内容看起来像这个var GaData={pageType:“product”,productId:“en32959852599”,总值:“330.15美元”};将此数据添加到您的问题中这看起来不像Ruby。您能解释一下regext吗regexp只捕获了
var skuProducts=[
和]之间的所有内容代码>。