Wie analysiere ich diesen Amazon Fehlerbericht mit einem regulären Ausdruck?

StackOverflow https://stackoverflow.com/questions/756760

  •  09-09-2019
  •  | 
  •  

Frage

Wenn Sie einen Feed von Produkten Amazon vorlegen wird es eine Fehlermeldung zurück, die Vorschläge für Produkte, die nicht angepasst wurden, wie so enthalten:

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'."

In diesem Beispiel „Händler Wert:“ was vorgelegt wurde und „Amazon Katalogwert:“. Ist eine enge Übereinstimmung

Ich versuche, diese Werte zu extrahieren, so dass wir unsere Feed Vorlage anpassen können und die fehlerhaften Einzelteile zurücksenden. Ich habe diese regex gehackt zusammen:

(Merchant value\:) (')(.+?)(')( Amazon catalog value\: )(')(.+?)(ASIN)

Diese fast funktioniert. Ich kann Gruppe 3 und 7 ziehen und meine Werte haben ... manchmal. Leider sehen einige der Vorschläge wie:

Merchant value: 'Barleans' Amazon catalog value: 'Barlean's Organic Oils'

So die Zecke wird das Spiel unterbrechen. Ich nehme an, ich kann das Ende Spiel ändern „‚“und ignoriere die„‘s“, aber ich bin nicht sicher, ob mein regex überhaupt effizient ist und ich weiß, es anfällig ist an der Ecke Fälle zu brechen.

Bearbeiten zu klären:

Die Daten Ich versuche, wäre zu bekommen:

SKU (998 im ersten Beispiel) dann für jeden Vorschlag: Field (itemname oder Hersteller) unser Wert Amazon schlagener Wert

So wäre es wie:

998 | itemname | Promax Nutrition Promax Bar - Mokka Explosion | Promax Bars, Mokka Explosion 12 bar

War es hilfreich?

Lösung

Die Referenzen, die ich in der Lage bin, die im Internet für diese Art von Amazon Fehlermeldung an das Format zu finden, wie folgt:

Definition:

<@foreach ASIN><ASIN> <@foreach attribute that differs><ATTRIBUTE> Merchant value: “<merch val>” Amazon catalog value: “<Amazon catalog value>”;</foreach>.</foreach>

Beispiel:

SKU “a1b2d4” could correspond to multiple ASINs in the Amazon catalog. Please review the possible matches below.

If your product is the same as the product on one of these detail pages, please modify your product data to reflect the Amazon catalog values and resubmit. If your product is different than what is on these detail pages, please provide more data and resubmit.

ASIN B1234567890 “UPC” Merchant value: “12345678901” Amazon catalog value: “00000000000” “TITLE” Merchant value: “Good Bad Ugly” Amazon catalog value: “The Good, the Bad, and the Ugly”.

ASIN B0987654321 “UPC” Merchant value: “12345678901” Amazon catalog value: “12345678901” “TITLE” Merchant value: “Good Bad Ugly” Amazon catalog value: “For a few dollars more.”

Es scheint mir, wie du einige Verarbeitung auf es tun, die Smart-Anführungszeichen ( und ) auf einfache Anführungszeichen zu konvertieren. Wenn Sie vorhaben, das zu tun, werden Sie Apostrophe irgendwie selbst zu entkommen. Es kann leichter sein, sie anstelle von einzelnen zu doppelten Anführungszeichen zu konvertieren, oder analysieren sie nur mit den Smart-Anführungszeichen intakt.

Es ist ein einfacher regulärer Ausdruck, wenn Sie die Smart-Anführungszeichen in Ruhe lassen, aber unmöglich, wenn man sich auf einfache Anführungszeichen konvertieren und tut nichts, um Apostrophe in den Streichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top