Hvorfor alle i humaniora bĂžr lĂŠre seg regex
âŠtekstsĂžk pĂ„ steroider.
Jeg har i i det siste begynt Ă„ se pĂ„ hvordan regular expressions (forkortes regex), pĂ„ norsk regulĂŠre uttrykk, kan brukes til Ă„ gjĂžre en del oppgaver som har med tekstbehandling Ă„ gjĂžre⊠velâŠenklere. Og nĂ„r jeg skriver enklere er det altsĂ„ med et lite forbehold om at det er en viss lĂŠringskurve i spill her. Det er greit Ă„ begynne pĂ„ nettsteder som regex101, regexplained og videoen til Lea Verou og den tilhĂžrende nettsiden. Men hvorfor er det verdt Ă„ sette av litt tid til Ă„ lĂŠre seg regex? La meg komme med et eksempel fra den virkelige verden.
En stipendiatkollega som jobber som redaksjonsassistent for et sentralt fagtidskrift fortalte meg at han hadde fĂ„tt en oppgave om Ă„ alfabetisere en forfatterliste basert pĂ„ etternavn. Vanligvis kan man alfabetisere linjer (eller avsnitt) basert pĂ„ fĂžrste bokstav pĂ„ den linjen. I Word gjĂžr man for eksempel dette under Table â Sort. Problemet er at denne listen var formatert med fornavnet fĂžrst og ikke etternavnet, pĂ„ denne mĂ„ten[1]:
Jonathan Z. Smith, Prof., Chicago Divinity Russel McCutcheon, Prof., University of Alabama Michael Pye, Prof. em., University of Marburg Knut MelvĂŠr, MA, University of Bergen
Det finnes flere mÄter Ä lÞse dette pÄ i regex, men jeg lokaliserte etternavnet med denne syntaksen:
Slik ser den ut pÄ regex101.com:
Det regulÊre utrykket leter altsÄ etter ett tomrom (\s), 1 til uendelig av «ordkarakterer» (\w+), et komma (,) og ett tomrom (\s). Dette skal den gjÞre pÄ (/) alle linjer (m) og rapportere alle treff (g). Skal vi vÊre skikkelig avanserte kan vi prÞve Ä beskrive hele strengen og gruppere treffene. Dette blir nyttig om du vil manipulere teksten eller lignende. Sjekk eksemplet mitt her.
NĂ„ som vi har klart Ă„ lokalisere etternavnet i teksten, sĂ„ er neste steg Ă„ sortere basert pĂ„ det. Det fĂžrste vi trenger er en tekstbehandler som kan sortere linjer basert pĂ„ regulĂŠre uttrykk. Jeg hadde allerede BBedit[2] liggende pĂ„ harddisken. Etter man har limt inn teksten[3] inn i et BBedit/TextWrangler dokument, klikker man i menylinjen pĂ„ Text â Sort linesâŠ. Da fĂ„r man opp et vindu ser som slik ut:
Legg merke til at BBedit/TextWrangler ikke nevner «regex», men oppgir sÞk pÄ «pattern». Man skal vÊre oppmerksom pÄ at det finnes flere termer for den samme funksjonaliteten og at forskjellige tekstbehandlere av og til oppfÞrer seg litt annerledes. Det mÄ av og til prÞves og feiles litt. De som er ekstra oppmerksomme ser ogsÄ at man kan sortere pÄ sÄkalte sub-patterns, det er det samme som jeg bruker til Ä stokke om pÄ teksten i dette eksemplet.
Klikker man Sort ender man opp med listen slik:
Russel McCutcheon, Prof., University of Alabama Knut MelvĂŠr, MA, University of Bergen Michael Pye, Prof. em., University of Marburg Jonathan Z. Smith, Prof., Chicago Divinity School
Du tenker kanskje at dette virker som litt mye arbeid for Ä sortere fire linjer, men man havner fort i en situasjon der man er nÞdt til Ä sortere eller omstokke pÄ for eksempel et tyvetalls navn. Da blir denne metoden veldig hendig og tidsbesparende.
Navnelisten under er konstruert av meg  â©
TextWrangler er gratisversjonen av BBedit og holder lenge for de fleste  â©
NB! BBedit/TextWrangler tar bare rentekst  â©