Als u DataFeedWatch al gebruikt heeft u misschien het woord "regexp" al opgemerkt in de opties voor toewijzing. In dit artikel leg ik uit hoe RegExp in onze app kan worden gebruikt, maar laten we eerst verduidelijken wat RegExp precies is.
Een reguliere expressie (afgekort RegExp) is een speciale tekstreeks om een zoekpatroon te beschrijven. U kunt reguliere expressies beschouwen als jokertekens, maar dan beter. U bent waarschijnlijk bekend met jokertekens zoals *.txt om alle tekstbestanden in een map te vinden. RegExp werkt volgens dezelfde principes, maar kan nog veel meer.
Het kost wat oefening om RegExp onder de knie te krijgen, maar als u eenmaal weet hoe het werkt is het erg handig. Als u geïnteresseerd bent in reguliere expressies kan ik deze tutorial aanraden.
Het is ook een goed idee om uw RegExp te testen voordat u deze implementeert. Er zijn veel online tools om dat te doen. De tool die ik gebruik heet Rebular.
Laten we verder gaan met voorbeelden uit de praktijk om te zien hoe RegExp nuttig kan zijn als het gaat om feedoptimalisatie.
Stel dat u een veld 'kleur' wilt maken voor uw Google Shopping feed. U hebt geen veld voor kleur in uw winkel, maar u weet dat alle titels van uw producten eindigen op een kleurnaam (bijv. Adidas Heren Snova Glide 5 Hardloopschoenen Groen).
De beste manier om met deze situatie om te gaan, is de kleur van de naam toe te wijzen en een vervangingsregel te gebruiken met RegExp:
Het werkt als volgt:
Het resultaat voor “Adidas Heren Snova Glide 5 Hardloopschoenen Groen” is in dit geval “Groen”.
Stel dat u een prijsveld maakt voor een kanaal dat 2 decimalen accepteert (bijvoorbeeld 12.45) en uw prijzen hebben er 4 (12.4500). Ook hier komt het vervangen van regels door RegExp van pas. Om het formaat aan te passen moeten we het als volgt instellen:
Net als bij het volgende voorbeeld gebruikt u regels:
([0-9]+.[0-9]{2})([0-9]{2})
met een nieuwe waarde in groep 1 ($1)De uitkomst van deze toewijzing voor 12.4500 is 12.45.
Houd er rekening mee dat deze afbeelding de prijs niet naar twee decimalen afrondt, maar in plaats daarvan de laatste twee cijfers afkapt.
Stel dat u het product_type voor Google Shopping wilt instellen als hoofdcategorie van uw producten (bijvoorbeeld auto-onderdelen), maar in uw systeem hebt u alleen de hele categoriepaden (bijvoorbeeld auto-onderdelen > BMW > 320i > 2013).
Wat u dan kunt doen, is alles beginnend met ">" verwijderen. De regel hiervoor ziet er als volgt uit:
waarbijs>.*
=> een willekeurig teken is, gevolgd door een ">" gevolgd door een willekeurig teken dat een aantal keren voorkomt
De uitkomst van deze toewijzing voor "auto-onderdelen> BMW> 320i> 2013" zou "auto-onderdelen" zijn.
Stel u voor het laatste voorbeeld een kanaal voor dat UPC's vereist, maar in uw systeem hebben niet alle producten UPC's en de UPC's die u hebt, hebben niet allemaal het juiste formaat (12 cijfers). Als u een feed verzendt met producten waarvoor de UPC's leeg of onjuist zijn, kan de hele feed worden geweigerd. Wat u moet doen, is die producten uitsluiten. Dit kunt u doen met een uitsluitingsregel met behulp van... Juist, de RegExp.
Wat we hier doen is alleen producten selecteren waarvoor de UPC een 12-cijferig getal is. Met andere woorden, alleen producten waarvan de UPC overeenkomt met RegExp ^[0-9]{12}$
Dit zijn slechts enkele voorbeelden van hoe RegExp kan worden gebruikt. De vuistregel is dat wanneer er ingewikkelde toewijzingen worden gemaakt, de RegExp uw "wapen van keuze" moet zijn.
Als u problemen hebt met de toewijzingen, beschrijf uw probleem dan in de comments en ik zal proberen een geschikte RegExp te vinden om het te verhelpen (indien mogelijk).