Regular expressions er, enkelt sagt, et verktøy man kan bruke til å søke etter tekst. Komplisert sagt er det en hele masse grafs med formelle språk og Chomsky-gramatikk og masse greier jeg aldri har giddet å sette meg inn i, utenom at jeg har fått med meg at HTML er en Chomsky-gramatikk av type 2, mens regular expressions er type 3, og derfor kan man ikke bruke regular expressions til å lese HTML. Og hvis du prøver vil russiske hackere pwne webappen din.
Så, regular expressions. Hvis du noen gang har brukt litt tid på å søke etter tekst i et dokument, er det ikke usannsynlig at du har ønsket du kunne regular expressions. For å ta et enkelt eksempel, la oss si at du har en lang tekst, og du ønsker å søke etter årstall, og at du ikke vet noe annet enn at det begynner på 1. Da kan du enten søke etter 1, som kan funke bra, men som også kan funke dårlig om det er mange tall i dokumentet du ser på. Hvis du derimot kan dine regular expressions, kan du bare søke etter
'1\d{3}'
Et annet eksempel kan være at du ønsker å finne enten 'mobilnummer' eller 'telefonnummer', eventuelt med stor forbokstav. Da kan du søke etter
'([Tt]elefon|[Mm]obil)nummer'
For å ta et litt mer søkt eksempel kan vi tenke oss at du ønsker å søke etter navnet på en eller annen skuespiller. Du husker ikke hva han heter til fornavn, men du husker at det var et kort navn, mellom fire og seks bokstaver, og du husker at det i alle fall ikke begynte på F eller K, og at det var et engelsk navn med ingen sære bokstaver. Da kan du søke etter
' [A-EG-IL-Z][a-z]{3,5} '
Hvis du er på utkikk etter et gresk eller latinsk ord, og du husker ikke hvilket, men det var definitivt et av de som begynner på 'ab' slutter på 'ion' eller 'oid', og det var neppe lengre enn 15 bokstaver totalt. Da kan du søke etter
'[Aa]b[a-z]{0,10}(ion|oid)'
Abduction, in functional anatomy, is a movement which draws a limb away from the median (Sagittal) plane of the body. It is thus opposed to adduction.
Andre ting som kan være nyttige er linjeskift og tab. Sett at du søker i en txt-utgave av The Hitchhiker's Guide to the Galaxy, der du vet at alle avsnitt begynner på en ny linje med en tab som innrykk, og du leter etter et avsnitt som begynner med 'Ford Prefect'. Da kan du søke etter
'\n\r{0,1}\tFord Prefect'
Så, det var en kort introduksjon til regular expressions. For mer info, prøv google. Og forresten, jeg glemte å nevne at . finner alle tegn utenom linjeskift.
Ved en senere anledning: grep
-Tor Nordam