Когда вы отправляете поток продуктов в Amazon, он возвращает отчет об ошибке, который будет содержать предложения для продуктов, которые не были сопоставлены, например:
18 998 8042 Error "SKU '998'ASIN B0001FSZ6K 'item_name' Merchant value: 'Promax Nutrition Promax Bar - Mocha Blast' Amazon catalog value: 'Promax Bars, Mocha Blast 12 bars'. ASIN B00024D3HQ 'manufacturer' Merchant value: 'Promax Nutrition' Amazon catalog value: 'PROMAX' 'item_name' Merchant value: 'Promax Nutrition Promax Bar - Mocha Blast' Amazon catalog value: 'Promax Gourmet Bar Mocha Blast 12 bars'."
В этом примере «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 в первом примере)
тогда для каждого предложения:
Поле (наименование или производитель)
Наша ценность
Рекомендуемое значение Amazon
Так было бы как:
998 | наименование товара | Promax Nutrition Promax Bar - Mocha Blast | Promax Bars, Мокко Бласт 12 баров