Diegenen van u die al gebruik maken van DataFeedWatch hebben misschien het woord “regexp” wel eens zien staan in mapping opties. In dit artikel zal ik uitleggen hoe RegExp kan worden gebruikt in onze app, maar laat ik eerst vertellen wat RegExp precies is.
Een ‘Regular Expression’ (afgekort tot RegExp) is een speciale tekst-string om een zoekpatroon te beschrijven. Denk aan regular expressions als een jokerteken op steroïden. U bent waarschijnlijk wel bekend met wildcard-schrijfwijzen zoals *.txt om alle tekstbestanden in een bestandsmanager te vinden. RegExp werkt volgens dezelfde principes maar kan zoveel meer doen.
Het vereist wat oefening om te wennen aan RegExp, maar zodra u het onder de knie heeft is het bijzonder handig. Voor diegenen die geïnteresseerd zijn in het leren van regular expressions beveel ik deze handleiding aan.
Het is ook een goed idee om uw RegExp te testen voordat u het daadwerkelijk inzet. Er zijn veel online tools in omloop die precies dat voor u doen. De tool die ik gebruik heet Rubular.
Dus, laten we gaan kijken naar voorbeelden uit de praktijk om te zien waar RegExp kan helpen als het gaat om feed optimalisatie.
Stelt u zich voor dat u een veld ‘kleur’ moet maken voor uw Google Shopping-feed. U heeft geen veld voor kleur in uw winkel, maar u weet dat alle titels van uw producten eindigen met een kleurnaam (bijv. Adidas Heren Snova Glide 5 Loopschoenen Groen).
De beste manier om met deze situatie om te gaan is om kleur te structureren vanuit naam en een extra vervang-regel te gebruiken met RegExp zoals hier:
Wat het doet:
De uitkomst van deze mapping voor “Adidas Heren Snova Glide 5 Loopschoenen Groen” zou “Groen” moeten zijn.
Stelt u zich voor dat u een veld ‘prijs’ maakt voor een kanaal dat 2 getallen achter de komma accepteert (bijv. 12,45) en uw prijzen hebben er vier (12,4500). Weer komt de vervang regel met RegExp ons hier te hulp door het formaat aan te kunnen passen zoals hier:
Deze regel, vergelijkbaar aan het vorige voorbeeld:
De uitkomst van deze structuur voor 12,4500 is 12,45.
Let op: deze structuur rondt de prijs niet af op 2 decimalen achter de komma, maar snijdt alleen de laatste twee cijfers eraf.
Laten we stellen dat u product_type wilt instellen voor Google Shopping als de belangrijkste categorie van uw producten (bijv. Auto-onderdelen) maar in uw systeem heeft u alleen een pad staan voor de hele categorie (bijv. Auto-onderdelen > BMW > 320i > 2013).
Wat u hier moet doen is alles verwijderen vanaf ‘>’. De regel die dit doet, ziet er zo uit:
Waar
s>.* => iedere enkel karakter gevolgd door “>” gevolgd door ieder enkel karakter dat ieder aantal keren voorkomt.
De uitkomst van deze structuur voor “Auto-onderdelen > BMW > 320i > 2013” zou “Auto-onderdelen” moeten zijn.
Stelt u zich voor het laatste voorbeeld een kanaal voor dat UPCs vereist, maar in uw systeem hebben niet alle producten UPCs en de UPCs die u wel heeft hebben niet allemaal het juiste (12-cijferige) formaat. Als u een feed stuurt met producten waarin de UPC’s leeg zijn of niet juist, dan wordt de hele feed afgekeurd. Wat u moet doen is deze producten uitsluiten. Dit kan met een enkele regel met gebruik van … RegExp.
Wat we hier moeten doen is alleen die producten insluiten waarvoor UPC een exact 12-cijferig nummer is. In andere woorden: sluit alleen producten in als UPC matcht met regexp ^[0-9]{12}$
Dit zijn slechts een paar van de talloze voorbeelden hoe RegExp kan worden ingezet. De vuistregel is dat waar er een complexe mapping is, u gebruik moet maken van RegExp als uw “toverstaf”.
Als u tegen zaken aanloopt betreffende uw mapping, beschrijf ze dan hieronder. Ik zal dan proberen een juiste RegExp manier te vinden om ermee om te gaan.