Regex – Digital magi til procesoptimering

torsdag D. 28 marts, 2019

Blogindlægget er til dig, der:

…. vil optimere sortering og udtrækning af data.

Der er meget rugbrødsarbejde i at sortere, rydde op i og ændre på data.

Har du eksempelvis prøvet at skulle…

  • Uploade en ny serie produkter, hvor titlerne ikke har været præcis, som du ville have dem?
  • Omstrukturere din hjemmeside og lave redirects for alle dine URL’er?
  • Flytte din hjemmeside og lave redirects for samtlige af dine 4000 produkter og deres varianter?

Nu skal du ikke frygte den langsomme død længere!

Hvad hvis jeg sagde, at jeg kunne løse hver af disse problemer med kun én kodestreng?

Lad mig vise dig den nørdede magi, bedre kendt som Regulære Udtryk eller Regex.

Scroll ned til det afsnit du vil læse:

Ændring af produkt-titler til din webshop

Lav mange redirects hurtigt

Redirect din webshop og dens produkter

Afsløringen af Regex-trylletricket

Efter showet

Så hvad kan Regex?

Regex (regular expression) er et kodesprog, som man bruger til at identificere mønstre i tekst og data. Når du så har identificeret et mønster, så kan du vælge, hvad du vil gøre med det.

Skal mønstret eksempelvis…

  • Slettes?
  • Redigeres til noget andet?
  • Tages ud og gemmes til senere brug?

Regex har mange brugsmuligheder, og egentlig sætter fantasien kun grænsen, så lad mig endelig vise dig lidt magi, inden jeg afslører tricket.

 

Ændring af titlen på produkter, inden du uploader dem til din webshop 

Lad os sige at du driver en elektronik-webshop, og du lige har fået en sending af de nyeste 2019-modeller. Produktinformationen er blevet sendt i et excel ark, som du plejer at uploade til hjemmesiden for at lægge produkterne ind.

Desværre inkluderer denne leverandør aldrig deres brandnavn i titlen, og tommerne af tv’et er også i en kolonne for sig selv.

Du vil gerne have, at din fremtidige titel går fra:
“55PUS7503/12 Ultratyndt 4K TV” til “Philips 55” Ultratyndt 4K TV”

Skal du til at rette 100 modeller manuelt i excel, inden du uploader produkterne?

Svaret er NEJ – i hvert ikke med lidt regex-magi.

Fælles for alle produkter er, at deres MPN-nummer (det lange nummer foran) altid slutter på en “/” efterfulgt af 2 cifre. Dét vi er interesseret i, er den information, som kommer efter disse tal, nemlig at produktet er et “Ultratyndt 4K TV”.

MPN-nummeret vil være unikt for hvert produkt, så “Find & Replace” virker ikke. De kommer også i forskellige længder, så “=højre” er heller ikke din redningsmand.

Heldigvis har excel en regex-funktion, “=Regexextract”

Koden (A2;\/\d{2}\s(.*)”fortæller systemet, at hvad end der kommer efter skråstregen og de to cifre, er hvad du gerne vil have, at titlen bliver.

Regex og regulære udtryk

Brug denne formel ned gennem arket for produkterne og voila, du har lige opdateret 100 produkter hurtigere, end du kunne brygge en kop kaffe. Som illustreret på billedet, er felt A3 markeret, hvor resultatet af formlen vises.

Alt hvad du mangler nu er at bruge  =SAMMENKÆDNING(B2;” “;C2;Tommer;A3for at inkludere dataet fra de andre rækker, og så har du den perfekte produktbeskrivelse.

Regex til shops

 

Lav mange redirects hurtigt 

Du driver en blog, og har besluttet dig for at slippe af med datomarkeringen i URL’en, så din blog ikke længere hedder:

“supersjovblog.dk/2019/08/20/Linser-er-de-nye-kulhydrater”
men derimod hedder: “supersjovblog.dk/blog/Linser-er-de-nye-kulhydrater”

Hvordan opdaterer du hele dit bagkatalog af blogopslag, uden at lave en redirect for hvert enkelt oplæg? Ved brug af Regex selvfølgelig!

Nu skal vi igen finde et mønster, vi kan arbejde med. Fælles for alle blogindlæg er, at de har en dato foran sig, som ændrer sig afhængig af, hvornår indlægget blev lagt op.

Denne dato skal “bare” laves om til /blog/ i stedet for, da slutningen forbliver den samme!

Med et stykke kode, og et redirect plugin som kan klare regex-udtryk, kan vi klare hele redirecten af bloggen med denne kode: \/\d{4}\/\d{2}\/\d{2}\/(.*) som skal redirecte til /blog/$1 og tada! 

Alle sider med den nævnte blogstruktur bliver nu redirected til deres nye /blog/ URL! Helt bekymringsfrit!

regex til redirects

Her ser du koden virke på et blogeksempel med før-eksemplet øverst og det ændrede resultat nederst.

Den blå del er, hvad der matcher koden, den grønne del er den del, vi gerne vil gemme.

Dette vil du også kunne bruge til almindelige URL-ændringer, så længe at slutningen er den samme. Tag en tandlægehjemmeside som eksempel:

/tandbehandlinger/  til /behandlinger/ ville være: som skal redirectes til: \/behandlinger\/$1

Men igen, dette virker kun, hvis slutningen af URL’en begge steder er den samme!

 

Redirect din webshop og dens mange produkter

Dit nye webshopdesign skal i luften, og det betyder, at alle dine produkter ikke alene kommer til at ligge et nyt sted, men deres slutning ændrer sig også fra “/” til “.html”

Så du går nu fra:
denvildeplakatshop.dk/produkt/zebra-plakat/
til:
denvildeplakatshop.dk/shop/zebra-plakat.html

Uden Regex, ville du skulle sidde manuelt og lave redirects, til du ikke havde flere hår at hive ud. Men endnu en gang kommer Regex dig til undsætning.

Du skal bare bruge disse stykker Regex-udtryk:

\/produkt\/(.*)\/$ fanger produktets navn inden for dens skråstreg.

 /shop/$1\.html ændrer “produkt” til “shop”, sætter produktets titel ind og tilføjer “.html” i enden.

Plot koden ind i samme redirect-plugin, som kan tage Regex, og sæt et fluehak ved “Regex”-boksen. Du er nu kørende.

Med én enkelt linje kode har du lige flyttet hele din webshop og sparet dig selv og dine medarbejdere en masse overarbejdstid og kedeligt rugbrødsarbejde!

regex til produkter

 

Afsløringen af Regex-trylletricket

Man siger jo, at en tryllekunstner aldrig afslører sine tricks… men det har jeg gjort nu – så du også kan agere tryllekunstner på din arbejdsplads og spare folk både tid og penge!

Gennem denne blog har jeg brugt udtryk som:

\/
\d{2} og \d{4}
(.*)
$1
\s

… Men hvad betyder de her udtryk og hvad gør de?

Kort sagt, så fortæller disse udtryk systemet, hvad du kigger efter. Det første udtryk i forbindelse med produkterne var som følgende:

\/\d{2}\s(.*)

Brudt ned ser det sådan her ud:

\/ betyder bare /

\d{2} er egentlig to-delt information. “\d” betyder, at der skal være et tal og “{2}” står for antallet, i dette tilfælde 2, så her siger vi, at der skal være to tal.

\s står for “mellemrum”

(.*) dette er også to-delt information. Punktum i sig selv betyder “Hvilket som helst tegn”.

Det efterfølgende tegn bestemmer, hvor mange tegn vi kigger efter, i dette tilfælde er det “*” som står for mellem 0 og ubegrænset. Så “.*” er alle tegn. Parenteserne rundt om “.*” fortæller bare systemer, at hvad der er inden i dem, vil vi gerne gemme til senere.

Måden vi så får det frem på, er med dollar-tegnet og hvilken rækkefølge parentesen er i. $1 er den første i rækkefølgen.

Når alle disse så er brudt ned og oversat, så fortæller koden (\/\d{2}\s(.*)), at
hvad end der kommer efter en skråstreg, efterfulgt af 2 tal og et mellemrum, det er vi interesseret i at gemme til senere.

 

Efter showet

Nu hvor du er blevet tryllebundet og gerne vil lære mere end min korte afsløring, så kan du besøge denne side: https://regex101.com/ .

Her finder du alle variabler og du har et sikkert sted til at teste din magi!

Hvis trylletricks ikke lige har din interesse, men du gerne vil spare dig selv og dine kollegaer tid og penge, så er du selvfølgelig velkommen til at kontakte de professionelle magikerne hos webamp.dk på tlf. 70 60 50 28 eller info@webamp.dk


Vester Farimagsgade 3, 3
1606 København V
+45 70 60 50 28
info@webamp.dk

 

CO2 neutral

Google anmeldelser
5.0
Facebook Bedømmelse
5.0