Martin Ender
Beispiel 1
Stellen Sie sich vor, Sie müssen ein Feld 'Farbe' für Ihren Google Shopping-Feed erstellen. Sie haben kein Feld für Farbe in Ihrem Shop, aber Sie wissen, dass alle Titel Ihrer Produkte mit einem Farbnamen enden (z.B. Adidas Mens Snova Glide 5 Running Shoes Green).
Der beste Weg, mit dieser Situation umzugehen, ist, die Farbe aus dem Namen abzubilden und eine zusätzliche Ersetzungsregel mit RegExp wie diese zu verwenden:
Was es macht, ist:
- jeden Namen in zwei Gruppen einzuteilen:
group 1 - alles bis auf das letzte Wort, dargestellt durch (.*) wo
.* => jedes einzelne Zeichen, das beliebig oft erscheint group 2 –das letzte Wort vertreten durch (s[^s]+) wo
s => jedes Leerzeichen
[^s]+ => jedes einzelne Zeichen außer Whitespace, das mindestens einmal vorkommt - Ersetzt den vorhandenen Wert, der sich wie folgt beschreiben lässt (.*)(s[^s]+) mit einem neuen Wert, der group 2 (in der RegExp-Taxonomie geschrieben als $2)
Das Ergebnis dieses Mappings für "Adidas Mens Snova Glide 5 Running Shoes Green" wäre "Green".
Holen Sie sich unseren Leitfaden zur Verdoppelung Ihrer Google Shopping Verkäufe in einer Stunde
Beispiel 2
Stellen Sie sich vor, Sie erstellen ein Preisfeld für einen Kanal, das zwei Dezimalstellen akzeptiert (z.B. 12,45) und Ihre Preise haben vier (12,4500). Auch hier ist die Ersetzungsregel durch RegExp sehr praktisch. Um das Format zu fixen, müssen wir es wie folgt einstellen:
Ähnlich wie im vorherigen Beispiel diese Regel:
- teilt jeden Preis in zwei Gruppen ein:
group 1 – alles bis auf die letzten zwei Nachkommastellen
([0-9]+.[0-9]{2}) wo
[0-9]+ => eine beliebige ganze Zahl
. => Punktzeichen
([0-9]{2} => beliebige zweistellige Zahl group 2 – die letzten beiden Nachkommastellen ([0-9]{2}) - ersetzt den bestehenden Wert, der sich wie folgt beschreiben lässt ([0-9]+.[0-9]{2})([0-9]{2}) mit einem neuen Wert, der Gruppe 1 ($1) ist.
Das Ergebnis dieses Mappings für 12.4500 ist 12.45 Uhr.
Bitte beachten Sie, dass diese Zuordnung den Preis nicht auf zwei Dezimalstellen aufrundet, sondern die letzten beiden Stellen abschneidet.
Beispiel 3
Nehmen wir an, Sie wollen product_type für Google Shopping als eine Hauptkategorie Ihrer Produkte (z.B. Autoteilen) festegen, aber in Ihrem System haben Sie nur die gesamten Kategoriepfade (z.B. Car Parts > BMW > 320i > 2013).
Was Sie hier tun müssen, ist alles zu entfernen, was mit " >" beginnt. Die Regel, die dies abdeckt, würde so aussehen:
wo
s>.* => ein beliebiges Einzelzeichen, gefolgt von ">", gefolgt von einem beliebigen Einzelzeichen, das beliebig oft erscheint
Das Ergebnis dieser Kartierung für “Car parts > BMW > 320i > 2013” wäre “Car parts”.
Beispiel 4
Für das letzte Beispiel stellen Sie sich einen Kanal vor, der UPCs benötigt, aber in Ihrem System haben nicht alle Produkte UPCs und die UPCs, die Sie haben, haben nicht alle ein korrektes Format (12-stellig).
Wenn Sie einen Feed mit Produkten senden, für die keine oder falsche UPCs vorhanden sind, könnte der gesamte Feed abgelehnt werden. Was Sie tun müssen, ist diese Produkte auszuschließen. Dies kann mit einer einzigen Ausschlussregel erreicht werden, durch, wer hätte es gedacht... RegExp.
Wir erfassen hier nur Produkte, bei denen UPC genau eine 12-stellige Zahl ist. Mit anderen Worten: Wir nehmen nur Produkte auf, bei denen UPC mit regexp übereinstimmt. ^[0-9]{12}$
Dies sind nur einige wenige von unzähligen Beispielen, wie RegExp eingesetzt werden kann. Als Faustregel gilt, dass immer dann, wenn ein komplexes Mapping ansteht, RegExp die "Waffe der Wahl" ist.
Wenn Sie irgendwelche Mapping-Probleme haben, beschreiben Sie diese bitte in den Kommentaren und ich werde versuchen, eine geeignete RegExp zu finden, um damit umzugehen (wenn möglich).