Reguljära uttryck. Kapitel Reguljära uttryck Ett godtyckligt tecken: Ett speciellt tecken: [ ] 8.1.
|
|
- Sven-Erik Gustafsson
- för 7 år sedan
- Visningar:
Transkript
1 Kapitel 8 Reguljära uttryck I kapitel 6 togs flera kommandon för texthantering upp. I detta tillkommer ett viktigt begrepp för texthantering reguljära uttryck. 8.1 Reguljära uttryck Vi har tidigare använt kommandot fgrep för att söka efter en textsträng. Ofta vill man göra mer avancerade sökningar än att bara söka efter en fix text. I många sammanhang går det att använda jokrar i stil med hur skalet gör för filnamn (s. 21), men en mycket mer kraftfull formalism som används i många sammanhang är reguljära uttryck. På engelska heter det regular expression vilket ibland kortas till bara regexp eller regex. I synnerhet kommer vi att använda sökkommandot egrep i uppgifterna. Ett reguljärt uttryck är ett mönster som beskriver en mängd strängar. T. ex. beskriver det reguljära uttrycket [Dd]at(a or)lingvistik strängarna»datalingvistik«,»datorlingvistik«,»datalingvistik«och»datorlingvistik«, men inga andra strängar. Vi säger att detta reguljära uttryck matchar dessa fyra strängar (och att dessa fyra strängar matchar detta reguljära uttryck). I detta exempel har tydligen tecknen []( ) speciell betydelse Metatecken De tecken som har speciell betydelse i reguljära tecken kallas för metatecken. Det finns olika varianter av reguljära uttryck med lite olika uppsättningar metatecken. Vanligt är att följande fjorton finns:. * +? ^ $ ( ) [ ] { } \ och det är reguljära uttryck med dessa som beskrivs nedan Ett godtyckligt tecken:. Punkten (.) matchar ett tecken vilket som helst. (Det fyller alltså samma funktion som frågetecken gör i jokeruttryck.) Så med b.x matchas»box«och»bmx«, samt även t. ex.»b%x«och»b x« Ett speciellt tecken: [ ] Om man ska beteckna ett tecken som man vill ställa mer krav på använder man hakparenteser. Genom att räkna upp tecken inom [] kan man ange ett av dessa tecken, så [Dd]ator matchar»dator«eller»dator«och [hmt]um[lm]a matchar»humla«,»humma«,»mumla«,»mumma«,»tumla«och»tumma«. Detta liknar hur man använder [] som jokertecken. Precis som då kan man även ange intervall, så [0-9] betyder samma som [ ]. Vill man ta med bindestrecket så får man sätta det först eller sist: [._-] matchar».«,»_«eller»-«. En skillnad är att i reguljära uttryck kan man använda ^ först för att negera en uppräkning av tecken, så [^aouå] matchar vilket tecken som helst som inte är a, o, u eller å och [^0-9] matchar vilket tecken som helst som inte är en siffra Teckenklasser Teckenklasserna från sidan 80 kan användas även inom [] i reguljära uttryck. Eftersom teckenklassernas namn innehåller egna hakparenteser blir det dubbla hakparenteser då. 91
2 8. REGULJÄRA UTTRYCK T. ex. matchar [8 [:upper:]!] ett tecken som är en åtta, ett mellanrum, en versal eller ett utropstecken. Ett reguljärt uttryck som ska matcha bara en versal blir [[:upper:]] med dubbla parenteser, medan t. ex. [^[:upper:][:digit:]_] matchar ett tecken som varken är versal, siffra eller understrykningstecken Repetitioner: + *? {} Med + efter något kan man säga att detta något ska förekomma en eller flera gånger. Det reguljära uttrycket bä+ matchar därmed strängarna»bä«,»bää«,»bäää«,»bääää«, osv., hur långt som helst. Observera att det bara är ä som repeteras. Detta reguljära uttryck matchar t. ex. inte»bäbäbä«. Asterisken * fungerar ungefär likadant, men tilllåter även att den»repeterade«delen inte är med någon gång alls. Så bä* matchar samma texter som bä+, men dessutom»b«. Blanda inte ihop denna användning av * med jokerbetydelsen! I reguljära uttryck betyder inte * nånting för sig själv, utan det modifierar bara det som står precis innan, så i ab*c modifierar det b och hela uttrycket matchar»ac«,»abc«,»abbc«,»abbbc«, osv. Genom att skriva.* kan man matcha vad som helst. Det betyder ju vilket tecken som helst, hur många gånger som helst. Därmed matchar t. ex. uttrycket a.*ö vad som helst som börjar med a och slutar med ö, t. ex.»adjö«,»atollö«eller»a4! ö«. Med? efter något anger man ett det är frivilligt, dvs. det kan vara med (en gång) eller inte. Så bä? matchar»b«och bä och inget annat. Med {n} efter något kan man säga att detta något ska förekomma n gånger. Så x{3} matchar»xxx«och [sz]{2} matchar»ss«,»sz«,»zs«och»zz«, dvs. samma som [sz][sz]. Med {n,m} ska det vara minst n och högst m förekomster, så br{2,5} matchar»brr«,»brrr«,»brrrr«och»brrrrr«, och inget annat. Maxantalet m kan utelämnas, och 8{3,} betyder minst tre åttor, dvs.»888«eller»8888«eller»88888«eller... (Hur många som helst.) Parenteser: ( ) Med parenteser kan man föra samman ett större uttryck. Det gör t. ex. att (br){2,5} matchar»brbr«,»brbrbr«,»brbrbrbr«och»brbrbrbrbr«. Fler exempel: mo(no)+ton matchar»monoton«,»mononoton«,»monononoton«, osv. ([ptkbdg][aeiou]){3} matchar trestaviga ord där varje stavelse består av en klusil + någon av de angivna vokalerna, t. ex. bikupa, pitebo eller tekaka. Man kan ha parenteser inom varandra. Med ((ba)+r){3} matchas t. ex.»bababarbarbabar«,»barbarbar«och mycket mer Alternativ: Med lodstreck ( ) visar man alternativ. (Observera att detta motsvarar hur lodstreck används i syntaxen på man-sidor s. 58.) Så foo bar matchar»foo«och»bar«. Om man vill att bara en mindre del av uttrycket ska ha alternativ får man använda parenteser: f(oo ba)r matchar»foor«och»fbar«. 8.2 Ankring: ^ $ Metatecknen ^ och $ betyder början av raden respektive slutet av raden. Så med t. ex. ^xyz hittar man rader som börjar med xyz (radbörjan följt av»xyz«) och med [[:blank:]]$ hittar man rader som slutar med något blankt tecken. Dessa båda tecken matchar alltså inget tecken alls på egen hand, utan ställer bara krav på var det övriga i uttrycket ska befinna sig. Man säger att dessa ankrar ett reguljärt uttryck. 8.3 Bakstreck: \ Då återstår bara ett metatecken, nämligen bakstreck (\). Bakstrecket betyder nånting tillsammans med det tecken som följer direkt efter det. I synnerhet kan man sätta ett metatecken efter bakstreck när man verkligen vill söka efter det tecknet. Så för att söka efter t. ex. en siffra inom parenteser, som t. ex.»(3)«kan man använda det reguljära uttrycket \([0-9]\) med bakstreck för att visa att det verkligen ska vara med parenteser i texten. Detta kan användas även för bakstreck självt, så med \\ skriver man ett reguljärt uttryck som matchar ett bakstreck. 92
3 egrep I övrigt används bakstreck följt av annat tecken för lite olika funktioner. En sak som kan vara praktiskt är \w där»w«står för»word«. Det är synonymt med [[:alnum:]], dvs. ett alfanumeriskt tecken, men kortare att skriva. Med \< respektive \> matchar man en ordbörjan respektive ett ordslut. Liksom ^ och $ så matchar detta inte någon text i sig självt, men ger ett krav på var det som står runtomkring ska finnas. Så med \<anti hittar man»anti«som står i början av ett ord (t. ex.»anti«i»antites«eller»antilop«men inte i»fantisera«) och med \<\w\w\> hittar man ett ord med exakt två bokstäver Exempel Här är några ytterligare exempel på reguljära uttryck. [a-h][1-8] en ruta på ett schackbräde, som»e2«eller»b4«. [0-9]*[02468] en sekvens med siffror som slutar med en jämn siffra (fjor fem sex sjut ar nit)ton tjugo något av orden fr. o. m.»fjorton«t. o. m.»tjugo«(..)* ett jämnt antal tecken, vilka som helst \<pre\w*ing\> ett ord som börjar med»pre«och slutar med»ing«. uttryck behöver man ofta sätta det argumentet inom citattecken som ovan. Det kan vara säkrast att ha som vana att göra det Väljare till egrep Det finns många väljare till kommandot egrep. 1 Några av de mest användbara är: -c Ge inte raderna som output utan bara hur många rader som innehåller något som matchar det reguljära uttrycket (count) -i Ignorera (ignore) skillnader mellan stora och små bokstäver -v Motsatsen. Lista de rader som inte innehåller något som matchar det reguljära uttrycket Tänk på att egrep liksom många andra textbearbetningskommandon är radorienterad. Det man får ut är vilka rader som innehåller den söktatexten. Det innebär att om man gör en sökning som egrep 'karakt[eä]ristisk' FIL och får ut fem rader så betyder inte det nödvändigtvis att ordet»karaktäristisk«(eller»karakteristisk«) förekommer fem gånger i filen, utan att det finns fem rader som innehåller den texten. Några av dessa rader innehåller kanske flera förekomster av texten! 8.4 egrep Förut har vi använt fgrep för att leta efter en text. Med egrep ska det första argumentet istället vara ett reguljärt uttryck. Eventuella övriga argument är namn på filer att leta i, men om inga ges så söker egrep istället i standard input, precis så som fgrep gör. Som output kommer alla rader i inputten som innehåller något som matchar det reguljära uttrycket. Exempel: $ tail -n 20 FIL egrep 'x[0-9]+x' Finns det i de sista 20 raderna i filen FIL två x som bara innehåller en eller flera siffror mellan sig? Lista i så fall de rader där detta finns med. Eftersom man ofta har med tecken som skalet tolkar speciellt (t. ex. som jokrar!) i sina reguljära 1 Alla dessa finns till fgrep också. 93
4
5 Laboration 8: Reguljära uttryck och textbehandling Redovisning Skriv en article i LaTeX där du svarar på frågorna. Utgå från mallen i /local/kurs/ids/ labb8-mall.tex där det även finns ytterligare instruktioner som kommentarer. Svara på frågorna. När du ger kommandon för att få fram svaret så visa både kommandona och deras resultat. Använd omgivningen verbatim för sådant. Det ideala är om du har ett kommando som bara ger svaret och inget annat så att du inte behövde se igenom mycket output och plocka ut svaret därifrån för hand. Skicka datorpost till Per med LaTeX-filen senast måndagen den 12/11. När filer nämns med bara ett namn så ligger de i /local/kurs/ids/. Exempeluppgifter Dessa är redan lösta i mallen! Uppgift 8.1 Vilka rader i filen /local/kurs/ids/ ivt2-svenska.txt innehåller ord som slutar med»gn«? Uppgift 8.2 Vad betyder {3,5} i ett reguljärt uttryck? Ge exempel. Uppror! I uppgift 4.40 på s. 54 sparade du en version av uppror.txt med normal Unix-markering för nyrad. Den ska du använda nu. (Öppna den för säkerhets skull i Emacs och se att inte står (DOS) eller (Mac) i informationsraden vilket skulle visa att den har annan markering av nyrad.) Alla uppgifter i detta avsnitt använder sig av den filen. Uppgift 8.3 Vilka rader innehåller två y med exakt två tecken mellan sig? Uppgift 8.4 Vilka rader innehåller ett c som följs av l, u eller y? Uppgift 8.5 Vilka rader innehåller ett z som följs av något annat än o eller s? Uppgift 8.6 Vilka rader innehåller en labial konsonant (någon av p, b, m, f eller v) följt av el följt av antingen ett h eller interpunktion? Uppgift 8.7 Vilka rader innehåller en liten bokstav som följs direkt av en stor? Uppgift 8.8 Vilka rader innehåller minst fyra siffror i rad? Uppgift 8.9 Hur många rader innehåller minst tre interpunktionstecken i rad? Uppgift 8.10 Vilka rader har minst sex konsonanter i rad? Uppgift 8.11 Ordet kriminalisera innehåller sex alterneringar av konsonant + vokal i rad (ri-mi-na-lise-ra). Vilka rader i uppror.txt innehåller också sex sådana alterneringar? Uppgift 8.12 Vilka rader innehåller något av orden mitt, ditt, sitt, hans, hennes följt av ett mellanslag och sedan ordet liv? Uppgift 8.13 Vilka rader börjar med bokstaven y? 95
6 LABORATION 8: REGULJÄRA UTTRYCK OCH TEXTBEHANDLING Uppgift 8.14 Vilka rader börjar med ordet kan? Uppgift 8.15 Vilka rader har bokstaven d som andra tecken? Uppgift 8.16 Vilka rader både börjar och slutar med bokstaven m? Uppgift 8.17 Vilka rader både börjar och slutar med bokstaven m, men har inga ytterligare m i sig? Uppgift 8.18 Vilka rader har med ord som börjar med»flä«? Uppgift 8.19 Hur många rader är minst femtio tecken långa? Uppgift 8.20 Hur många rader innehåller inte något interpunktionstecken? 8ttorna igen I detta avsnitt letas efter ord i 8.list från s. 83. Uppgift 8.21 Hur många ord innehåller q eller z (eller båda)? Uppgift 8.22 Vilka ord innehåller både q och z så att q kommer före z? (Inte nödvändigtvis omedelbart före, så t. ex. ska squeezed bli ett av orden i svaret.) Uppgift 8.23 Vilka ord börjar med fyra konsonanter? (Räkna inte y som konsonant, trots att den ofta är det på engelska.) Uppgift 8.24 Vilka ord innehåller delsträngen ma två gånger med minst ett tecken mellan de båda förekomsterna? Ord som smalfilma och hemmamatch skulle alltså komma med, ifall de hade stått med i denna ordlista. Uppgift 8.25 (Korsord) Vi söker ett åttabokstavigt ord. Första bokstaven måste vara m, p eller v. Andra bokstaven är säkert ett o. Sista bokstaven är o eller p. Vad kan det vara för ord? Uppgift 8.26 Vilka ord innehåller inte någon av bokstäverna i»etaoin«? (De vanligaste bokstäverna i engelska.) Uppgift 8.27 Hur många ord innehåller minst två b (inte nödvändigtvis direkt efter varann)? Mer mer mer Uppgift 8.28 Ge ett reguljärt uttryck som matchar orden»mormor«,»morfar«,»farmor«och»farfar«. Här är mormor morfar farmor farfar förstås en möjlighet, men försök att skriva något kortare! Uppgift 8.29 Ge ett kort reguljärt uttryck som matchar både»arton«och»aderton«(men inget annat). Uppgift 8.30 Det reguljära uttrycket ab?c[de] beskriver strängarna»acd«,»ace«,»abcd«och»abce«. Vilka strängar beskriver följande reguljära uttryck? (Ange samtliga strängar!) a) rök?fritt b) a b? c c) fo{4,6}l? d) ([abc]-)?foo e) foo(bar?)? Uppgift 8.31 Ge ett reguljärt uttryck som matchar något av»1«,»2«,»3«,»4«,»5«,»6«,»7«,»8«,»9«,»10«,»11«,»12«,»13«osv. till hur höga tal som helst, men inget annat. (Första siffran är speciell!) Uppgift 8.32 Skriv ekvivalenter till följande regexpar som är så korta som möjligt: a) [abc][abc][abc][abc][abc][abc]? b) colour color c) (a b c d e) d) (ha he hi ho) e)..+.. f) x.*.*y Uppgift 8.33 De tre metatecknen *, + och? som kan sättas efter en del av ett reguljärt uttryck kan alla uttryckas med {}-konstruktionen istället. Hur, i de tre olika fallen? Visa dessa ekvivalenser i en tabular. 96
7 Mer mer mer Uppgift 8.34 Lista första halvan av varje ord i 8.list vars andra halva är mark. Så eftersom det finns ett ord landmark ska land finnas med i ditt resultat, t. ex. Uppgift 8.35 Vilka rader i rummet.words är substantiv som innehåller u? Uppgift 8.36 Hur många fyrbokstavssträngar finns det som förekommer både som förstahalva och som andrahalva i 8.list? (Dit hör t. ex.»poly«som finns både i monopoly och ord som polygamy.) Uppgift 8.37 Vilka ord som finns med i texten wonderland.txt slutar på»rd«? Uppgift 8.38 (Korta Strindbergord) Ge en frekvenslista över ord med högst tre bokstäver i rummet.txt. Ta bara med ord som förekommer minst två gånger. 97
Reguljära uttryck. Kapitel Reguljära uttryck. 8.2 Metatecken Ett tecken:. []
Kapitel 8 Reguljära uttryck I kapitel 6 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 8.1 Reguljära uttryck På
Läs merKapitel 8. Reguljära uttryck. 8.1 Ett tecken:. [ ] [^ ] 8.2 Ankring: ^ $ \< \>
Kapitel 8 Reguljära uttryck I kapitel 5 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 8.1 Ett tecken:. [ ] [^
Läs merReguljära uttryck och textbehandling
Kapitel 7 Reguljära uttryck och textbehandling Redan i kapitel 4 togs flera kommandon för textbehandling upp, som echo, head, fmt, sort, tail, tr. uniq och wc. Här kommer mer om sådant, i synnerhet reguljära
Läs merTextbearbetning i skalet och man-sidor
Kapitel 5 Textbearbetning i skalet och man-sidor Vi har redan använt skalkommandon för att göra saker textfiler. Här kommer gomgång av sådana kommandon som vi redan använt, några nya varianter, samt ett
Läs merKapitel 9. Reguljära uttryck. 9.1 Ett tecken:. [ ] [^ ] 9.2 Ankring: ^ $ \< \> 9.3 Bakstreck: \
Kapitel 9 Reguljära uttryck I kapitel 5 togs reguljära uttryck upp som argument till grep. I detta kapitel lär vi oss mer om sådana och om några andra sammanhang där de används. 9.1 Ett tecken:. [ ] [^
Läs merProgram. Kapitel make Program Interpreterande och kompilerande program
Kapitel 11 Program Detta kapitel är som synes mycket kort och nämner inte allt från föreläsningen. 11.1 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra.
Läs merProgrammering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater
Programmering för språkteknologer II OH-serie: ändliga automater reguljära uttryck i Java Mats Dahllöf Ändliga automater Abstrakt maskin, tillståndsmaskin, transitionssystem. (Den enklaste typ man brukar
Läs mer729G09 Språkvetenskaplig databehandling
729G09 Språkvetenskaplig databehandling Föreläsning 2, 729G09, VT15 Reguljära uttryck Lars Ahrenberg 150409 Plan för föreläsningen Användning av reguljära uttryck Formella språk Reguljära språk Reguljära
Läs merSTRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar
STRÄNGAR En av de mest avancerade av de normala datatyperna är. Här skall vi grundläggande gå igenom hur den datatypen fungerar och vidare flertalet funktioner som hör till datatypen. Låt oss kasta oss
Läs merawk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor
C&UNIX awk, sed och grep 1 awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor C&UNIX ed 2 ed Standard unix editor
Läs merTDDD02 Föreläsning 2 HT-2013. Reguljära uttryck och reguljära språk Lars Ahrenberg
TDDD02 Föreläsning 2 HT-2013 Reguljära uttryck och reguljära språk Lars Ahrenberg Översikt Reguljära uttryck sökproblem i texter definitioner och exempel UNIX-funktionen grep Reguljära transformationer
Läs merÖversikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12
Översikt Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot 2 / 12 Texthantering Kommandona cat och less Vi har ett par textfiler i vår hemkatalog som heter liten_text.txt
Läs merErsätta text, specialtecken och formatering
11 Ersätta text, specialtecken och formatering Möjligheten att söka igenom dokumentet och byta ut tecken, ord, textstycken, formatering, specialtecken (t.ex. sidbrytning) och annat är faktiskt mycket mer
Läs merLabb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk
Labb 1 - Textbearbetning med reguljära uttryck Textbearbetning: Dela upp en text i meningar Hitta alla namn i en text Hitta adjektiv i superlativ Lektion reguljära uttryck re modulen i Python Formella
Läs merawk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977)
C&UNIX awk, sed och grep 1 C&UNIX ed 2 ed Standard unix editor awk, sed och grep tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977) terminal 10 tecken s 1 sed en stream editor
Läs merKonstruktion av datorspråk
Konstruktion av datorspråk Fö2: Funderingar kring hur man kan bedöma programspråk samt några fler detaljer i Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet
Läs merLaboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter
Laboration 10: LaTeX Redovisning Instruktionerna nedan Dessa labbinstruktioner är av den pratiga sorten. Du får ganska detaljerade instruktioner som du får följa steg för steg och där de fåtaliga frågorna
Läs mer729G09 Språkvetenskaplig databehandling
729G09 Språkvetenskaplig databehandling Lektion inför Laboration 1 vt15 Lars Ahrenberg Plan för lektionen Grupperingar Substitutioner Strängfunktioner i Python (kort repetition) Reguljära uttryck i Python
Läs merKapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make
Kapitel 12 Mer om program 12.1 Att rapportera buggar och problem När man rapporterar buggar eller andra problem i program så är det några saker att tänka på för att ens rapport ska vara användbar för den
Läs merTDDI16: Datastrukturer och algoritmer
TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några
Läs merTDP Uppgift 1
Uppgift 1 Ett (svenskt) registreringsnummer består av tre bokstäver mellan A och Z (förutom bokstäverna I,Q och V) samt tre siffror. I denna uppgift ska du skapa ett program som ber användaren mata in
Läs merDD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin
DD36 Programmeringsparadigm Formella Språk & Syntaxanalys Föreläsning Per Austrin 26--3 Kursavsnittet syntax/formella språk Teori om formella språk verktygslåda för strängmatchning: Ändliga automater och
Läs merMer om språk och Ruby
Mer om språk och Ruby TDP007 Konstruktion av datorspråk Föreläsning 2 Peter Dalenius Institutionen för datavetenskap 2014-01-21 Översikt över dagens föreläsning 1. Hur kan man bedöma ett språk? 2. Enhetstestning
Läs merFöreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel
Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel Eva Blomqvist eva.blomqvist@liu.se Linköpings universitet Sweden December 1, 2013 1 Innehåll OO-programmering fortsättning Skapa
Läs merIdag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik
Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik Först några definitioner: Alfabet = en ändlig mängd av tecken. Ex. {0, 1}, {a,b}, {a, b,..., ö} Betecknas ofta med symbolen Σ Sträng =
Läs merHandbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll
Dirk Doerflinger Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Starta KFind......................................... 5 2 Hitta filer 6 2.1 Fliken Namn och plats...................................
Läs merReguljära uttryck och textbehandling II
Kapitel 10 Reguljära uttryck och textbehandling II Detta är en fortsättning från kapitel 8 där reguljära uttryck och kommandot egrep introducerades. 10.1 Olika sorters reguljära uttryck Reguljära uttryck
Läs merÖvning 5 - Tillämpad datalogi 2013
/afs/nada.kth.se/home/w/u1yxbcfw/teaching/13dd1320/exercise5/exercise5.py October 1, 2013 1 0 # coding : latin Övning 5 - Tillämpad datalogi 2013 Automater, reguljära uttryck, syntax Sammanfattning Idag
Läs merHur man programmerar. Exempel på problemlösning i Python
Hur man programmerar Exempel på problemlösning i Python Problemet Som vokaler i engelska språket räknar vi i denna uppgift bokstäverna aeuio, och som konsonanter alla andra bokstäver utom y (y fungerar
Läs merUttryck, satser och strömhantering
Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2018-09-06 Mål Uttryck, satser och strömhantering I denna laboration ska du lära dig Formaterad inläsning och utskrift Vanliga repetitions-
Läs merTANA17 Matematiska beräkningar med Matlab
TANA17 Matematiska beräkningar med Matlab Datorlektion 6. Text och filer 1 Textsträngar Uppgift 1.1 Skapa en sträng som innehåller texten: kommer du snart?. Använd length för att kontrollera hur många
Läs merFöreläsning 7: Syntaxanalys
DD2458, Problemlösning och programmering under press Föreläsning 7: Syntaxanalys Datum: 2007-10-30 Skribent(er): Erik Hammar, Jesper Särnesjö Föreläsare: Mikael Goldmann Denna föreläsning behandlade syntaxanalys.
Läs merTentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merReguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)
Reguljära uttryck Ett sätt att söka och manipulera text Reguljära uttryck Konstruerar mönster som försöker hitta nåt i text Viktigt, användbart, många resurser http://regex.info/ http://etext.lib.virginia.edu/services/helpsheets/unix/regex.html
Läs merAnvändarhandledning PW Excel Manager
Sida 1 av 12 Dokumenthistorik: Version: Datum: Ändrat av: Orsak till ändring: 0.1 2017-11-16 Skapar dokument, utkast. 1.0 2017-12-01 Gällande dokument Detta dokument beskriver, är ett hjälpmedel för att
Läs merVad vill du säga? Röstkommandon. Datum. Datumintervall. Klockslag. Mått. Dosering. Skiljetecken. Symboler. Siffror. Uppräkningar.
Vad vill du säga? Här är några exempel på den tillgängliga automatiska formateringen. De verkliga igenkänningsresultaten beror på komponenterna som ditt system använder och hur det är konfigurerat. Nedanstående
Läs merErfarenheter från labben
Erfarenheter från labben Uppgifterna tidigare Bättre instruktioner än förra veckan Väntetid Smidigare hjälp Olika krav från olika examinatorer Kan alltid kolla med Joachim God programmeringssed De allra
Läs merUppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek
Läs merMen först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4
Introduktion till programmering Men först: Några funktioner ur preluden Vad är skillnaden mellan head str och take 1 str? Föreläsning 4 Ett större exempel. head :: [a] -> a take :: Int -> [a] -> [a] tail
Läs merAnvända Python Laboration 1 GruDat, DD1344
Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig
Läs merMathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x
Mathematica Första kapitlet kommer att handla om Mathematica det matematiska verktyg, som vi ska lära oss hantera under denna kurs. Indata När du arbetar med Mathematica ger du indata i form av kommandon
Läs merUppgift 1 (grundläggande konstruktioner)
Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en
Läs merTATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter
TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter Johan Thim 15 augusti 2015 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför
Läs merTATM79: Föreläsning 1 Notation, ekvationer, polynom och summor
TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q
Läs merErfarenheter från labben
Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?
Läs merByggmästarkrypto lärarsida
Nämnarens kryptoskola 7. Byggmästarkrypto lärarsida Svar och kommentarer Övning 7A: Svar: Boken om My är bra. Övning 7B: Svar: Ge mig nyckeln! Övning 7C: Svar: Övning 7E: Svar: Övning 7F: Svar: Var är
Läs merkommando -fl argument
Grundläggande kommandostruktur kommando -fl argument Kommandot kommando är ett litet linuxprogram som gör något. Flaggorna fl modifierar kommandot Argumentet argument kan vara inget, ett eller flera (beroende
Läs merSpråket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Läs merEmacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016
Emacs Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016 Historia 2/21 Utvecklas konstant, från 70-talet Är en generellt texteditor (INTE ordbehandlare) som fokuserar på texten, inte utseendet
Läs merHandbok KFind. Dirk Doerflinger Översättare: Stefan Asserhäll
Dirk Doerflinger Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Starta KFind......................................... 5 2 Hitta filer 6 2.1 Fliken Namn och plats...................................
Läs merHandbok för Klipper. Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll
Philip Rodrigues Carsten Pfeiffer Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Att använda Klipper 6 2.1 Grundläggande användning................................ 6 2.1.1 Klippers grafiska komponent...........................
Läs merSträngar. Strängar (forts.)
Strängar En sträng i C är helt enkelt en array av char: char namn[20]; För att få strängar att bete sig som om de vore av dynamisk längd markeras strängens slut med null-tecknet \0 : J o z e f S w i a
Läs merCTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning
CTH/GU LABORATION 1 MVE16-1/13 Matematiska vetenskaper 1 Inledning Mer om grafritning Vi fortsätter att arbeta med Matlab i matematikkurserna. Denna laboration är i stor utsträckning en repetition och
Läs merMer om språk och Ruby
Mer om språk och Ruby TDP007 Konstruktion av datorspråk Föreläsning 2 Peter Dalenius Institutionen för datavetenskap 2017-01-17 2 Översikt 1. Hur kan man bedöma ett språk? 2. Enhetstestning 3. Likhet i
Läs merUppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \
Läs merWF 9 MAC Kom i Gång SV Sida 1 FOR BETTER UNDERSTANDING KOM I GÅNG.
WF 9 MAC Kom i Gång SV 07-08-10 07.43 Sida 1 FOR BETTER UNDERSTANDING KOM I GÅNG www.wordfinder.se WF 9 MAC Kom i Gång SV 07-08-10 07.43 Sida 2 Tekniska förutsättningar WordFinder 9 Professional för Mac
Läs merIntroduktion till användning av linux-servern sledge och några övningsuppgifter
Uppsala universitet Institutionen för utbildning, kultur och medier Monica Langerth Zetterman och Richard Walls IT-stöd i undervisningen, HT10 Introduktion till användning av linux-servern sledge och några
Läs merReguljära uttryck, automater, hashtabeller, mm
Reguljära uttryck, automater, hashtabeller, mm Programmering för språkteknologer 2 Sara Stymne 2013-09-09 Idag Reguljära uttryck (huvudfokus) Ändliga automater Läsning/skrivning (delvis repetition) Hashtabeller
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merTDP005 Projekt: Objektorienterat system
. TDP005 Projekt: Objektorienterat system Laboration i Make och CMake Författare Filip Strömbäck Höstterminen 2016 Version 1.0 2016-10-04 Introduktion I denna lab kommer vi titta närmare på två verktyg
Läs merGitHub for Windows och GitShell
GitHub for Windows och GitShell En introduktion till programmen och de första grunderna i git. Det finns en tidigare introduktion. Den visar hur man skapar konto på git och använder GitHub for Windows
Läs merFilers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder
Filers innehåll Data av olika slag lagras i filer. file = pärm, mapp, arkiv, akt,... Grundläggande databehandling Filer och skal Per Starbäck 2005-09-12 / Föreläsning 2 texter ljud bilder databaser program...
Läs merFöreläsning 2 5/6/08. Reguljära uttryck 1. Reguljära uttryck. Konkatenering och Kleene star. Några operationer på språk
Reguljära uttryck Ändliga automater och reguljära uttryck Språk som är och inte är reguljära Konkatenering och Kleene star Två strängar u och v (på alfabetet )kan konkateneras till strängen uv Givet två
Läs merProgrammering i C++ Kompilering från kommandoraden
Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö
Läs merDatorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix
Datorer och datoranvändning Föreläsningar 2014/15 Per Holm Per.Holm@cs.lth.se Unix 2 (lab 1) Lågnivåprogrammering 23 (lab 2) Datorns hårdvara 45 L A TEX 69 (lab 3) Internet 98 (lab 4) Operativsystem 117
Läs merIntroduktion till datateknik för språkvetare
Introduktion till datateknik för språkvetare ht 2009 Per Starbäck Kapitel 1 Inledning 1.1 Om kursen Schema och annat finns på http://stp.lingfil. uu.se/kurs/ids/. Där kommer det även finnas länkar till
Läs merDet virtuella tangentbordet
Kapitel tre Det virtuella tangentbordet I det här kapitlet ska vi titta närmare på tangentbordet i ipad och hur det används i olika sammanhang. Som du kanske har märkt öppnas tangentbordet automatiskt
Läs merUPPGIFT 1 LAMELLER. Minsta antalet hål: 1. Första lamellen? Andra lamellen? Minsta antalet hål: 3
UPPGIFT 1 LAMELLER FIGUR 1. Överst de två lamellerna som de ges till programmet. Underst samma två lameller när den ena förskjutits så att bästa läge uppkommit. I figur 1, övre delen, ser du två lameller,
Läs merIntroduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merDatalogi för E Övning 3
Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna
Läs merProgramkonstruktion. Tentamen,
Programkonstruktion (Programmeringsmetodik DV1) Tentamen, 2008-03-10 Lars-Henrik Eriksson Institutionen för informationsteknologi Uppsala Universitet Tid: 0900-14:00. Börja med att läsa igenom alla frågorna
Läs merLABORATION 4: Textmanipulering Introduktion till lingvistik och datalingvistik XD1110
GÖTEBORGS UNIVERSITET Utbildningsprogrammet i datalingvistik Robert Andersson 14 november 2006 LABORATION 4: Textmanipulering Introduktion till lingvistik och datalingvistik XD1110 Inledning Samlingar
Läs merProgrammering II (ID1019) :00-11:00
ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren
Läs mer2.4. Teckensträngar och logiska uttryck
2.4. Teckensträngar och logiska uttryck I Fortran sparar man text i variabler av typen CHARACTER. För varje tecken reserveras normalt 1 byte i minnet. För att deklarera en teckenvariabel TEXT och samtidigt
Läs merLab 7, 48 steg till ett bättre liv i Unix-labbet
Lab 7, 48 steg till ett bättre liv i Unix-labbet Urban Liljedahl 13 december 2002 Instruktioner Mål Krav Utveckla förmågan att söka kunskap med hjälp litteratur och andra källor. Utveckla förmågan att
Läs merArbeta effektivare. med macos
Arbeta effektivare med macos Innehåll Dra-och-släpp Hantera fönster Söka i macos 10.12 Men först tangentbordet! Escape Betyder ofta avbryt i dialogrutor Mission Control Se alla fönster. Mycket användbart!
Läs merKapitel 3. Mer om skalet. 3.1 Kommandorör ( )
Kapitel 3 Mer om skalet 3.1 Kommandorör ( ) Ni har sett hur man kan spara resultatet av ett kommando i en fil med hjälp av tecknet > och ett filnamn. Istället för att spara resultatet i en fil kan man
Läs merDAB760: Språk och logik
DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg
Läs merFOR BETTER UNDERSTANDING. Snabbguide. www.wordfinder.se
FOR BETTER UNDERSTANDING Snabbguide www.wordfinder.se Tekniska förutsättningar WordFinder 10 Professional för Mac kräver följande: Processor: Intel Mac OS X 10.5 eller senare. Installation Installation
Läs merFöreläsning 13 Testning och strängar
Föreläsning 13 Testning och strängar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 13.10.2011 Testning Tips för systematisk testning
Läs merMer om skalet. Kapitel Omdirigering
Kapitel 3 Mer om skalet I förra kapitlet gavs grunderna i hur man ger kommandon i skalet och kommandon för att hantera filer gicks särskilt igenom. I detta kapitel ges några till kommandon och begrepp,
Läs merStandard Template Library
Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2015-11-01 Standard Template Library Mål Denna laboration går ut på att öva på att använda de givna klasser och algoritmer som finns
Läs merInstruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara
Läs merEnklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
Läs merInlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Läs merENKEL Programmering 3
ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merkl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merTDDC74 Lab 04 Muterbara strukturer, omgivningar
TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden
Läs merLaborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker
Sid 1 Laborationer i kursmomentet Datoranvändning E1 http://www.etek.chalmers.se/~hallgren/eda/ : Mer om FrameMaker 1996, 1997 Magnus Bondesson 1998 och 99-09-22 Thomas Hallgren 1 Introduktion I Laboration
Läs merFonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?
Hur bestämmer man vilka fonem ett språk har? Fonologi Mattias Heldner KTH Tal, musik och hörsel heldner@kth.se (Morfem = minsta betydelsebärande enhet i ett språk) Fonem = minsta betydelseskiljande ljudenhet
Läs merkl Tentaupplägg
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merUppgifter till praktiska tentan, del A. (7 / 27)
Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att
Läs merEgna genvägar. Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll
Subhashish Pradhan T.C. Hollingsworth Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 4 2 Hantera genvägar och grupper 4 2.1 Lägga till grupper...................................... 4 2.2 Lägga till
Läs merHome Nerladdning typsnitt Ladda Ladda fonter Menyn Skrivare Menyn teckensnitt Menyn Verktygsfält Menyn Hjälp Snabbtangenter
Nerladdning typsnitt Ladda 2 Ladda fonter 2 Menyn Skrivare 3 Avsluta programmet 3 Menyn teckensnitt 3 Välj Teckensnitt 4 Ladda ner ett teckensnitt 7 Ta bort teckensnitt 7 Teckensnitt Information 8 Menyn
Läs merAnvänd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix.
Använd WordFinder från Mac App Store optimalt! Snabbguide med nyttiga tips och trix. Tekniska förutsättningar För WordFinder från Mac App Store krävs följande: Processor: Intel Mac OS X 10.6.6 eller senare.
Läs merBASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)
BASH Bourne-Again SHell Eric Elfving Institutionen för datavetenskap (IDA) BASH sh-compatible command language interpreter Kan startas på två sätt: Login shell Kör init-filer i följande ordning: /etc/profile,
Läs merHögstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag
Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag 1. Lösningsförslag: Låt oss först titta på den sista siffran i 2 0 1 7. Ett tal som är delbart med 2 och 5 är då också
Läs merDatorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv
Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=
Läs mer