【发布时间】:2009-04-16 15:48:16
【问题描述】:
当您向亚马逊提交产品提要时,它会返回一个错误报告,其中包含对不匹配产品的建议,如下所示:
18 998 8042 错误“SKU '998'ASIN B0001FSZ6K 'item_name' 商户值:'Promax Nutrition Promax Bar - Mocha Blast' 亚马逊目录值:'Promax Bars, Mocha Blast 12 bar'。ASIN B00024D3HQ 'manufacturer' 商户值:'Promax Nutrition 亚马逊目录值:'PROMAX' 'item_name' 商户值:'Promax Nutrition Promax Bar - Mocha Blast' 亚马逊目录值:'Promax Gourmet Bar Mocha Blast 12 条'。在此示例中,“Merchant value:”是提交的内容,“Amazon catalog value:”是匹配项。
我正在尝试提取这些值,以便我们可以调整我们的提要提交并重新发送错误的项目。我已经破解了这个正则表达式:
(Merchant value\:) (')(.+?)(')( Amazon catalog value\: )(')(.+?)(ASIN)
这几乎可行。我可以拉第 3 组和第 7 组,并拥有我的价值观……有时。不幸的是,一些建议看起来像:
Merchant value: 'Barleans' Amazon catalog value: 'Barlean's Organic Oils'
所以滴答声会破坏比赛。我假设我可以将结束匹配更改为“'”并忽略“'s”,但我不确定我的正则表达式是否有效,而且我知道它很容易在极端情况下中断。
编辑澄清:
我想要获取的数据是:
SKU(第一个示例中为 998) 然后对于每个建议: 字段(项目名称或制造商) 我们的价值 亚马逊的建议价值
所以它会是这样的:
998 |商品名 | Promax Nutrition Promax 酒吧 - 摩卡咖啡 | Promax 酒吧,Mocha Blast 12 酒吧
【问题讨论】:
-
您的示例中似乎有两组不同的值,您是要捕获两者,还是只捕获第一个?
-
每一行都会有多个建议。基本上每一行对应一个 sku,亚马逊会返回制造商、商品名称等的值……通常每行都有几个建议。我想解析并保存每个建议,然后在解析后处理选择。
-
那么当目录值中有一个撇号时,亚马逊根本不会转义它?这不是“Barlean 的有机油”吗?
-
在此之前您是否以某种方式处理亚马逊错误?从我的搜索来看,原始错误消息似乎使用智能引号来包围值,而不是单引号。你换了吗?
-
@Lance Kidwell 你可以编辑你的问题以显示实际的消息格式(换行符和所有 - 只需使用
标签)这可能有助于构建正确的正则表达式。