Reguliere expressies
|
|
|
- Emilie ten Hart
- 9 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Reguliere expressies 1. Introductie Reguliere expressies vormen een specificatie-taal die een rol speelt als je in een grote hoeveelheid tekst een bepaald stukje zoekt. Het zoekwerk laat je door je computer doen, maar die wil een nauwkeurige specificatie van wát hij precies moet zoeken. Daarvoor gebruik je een notatie in reguliere expressietaal. Omderest van dit artikel wateenvoudiger te maken zullen we 'reguliere expressie' vaak afkorten tot regexp. Reguliere expressies behoren tot de meest krachtige mechanismen die binnen UNIX worden gebruikt. Reguliere expressies worden overal gebruikt waar in tekstbestanden wordt gezocht. Bijvoorbeeld: alle editors kennen een search-replace operatie. Het search-gedeelte van zo n operatie noteer je altijd als reguliere expressie. Om reguliere expressies hier te demonstreren maken we gebruik van een tekstbestand met de naam woordjes,dat het volgende lijstje woorden bevat: appel piet. lopen pinda mat pint dit is een volledig lege regel Behalve een tekstbestand om in te zoeken hebben we ook een zoek-commando nodig als demonstratie-vehikel. UNIX heeft veel mogelijkheden, en wij kiezen het commando grep. De gebruiker geeft aan grep bij het starten een zoekstring (in regexp-notatie) plus de namen van een of meer tekstbestanden. Het commando Copyright AT Computing 2010,2012 Versie: 5b
2 Reguliere expressies 2 zoekt dan in die bestanden naar de regels waarin een stukje tekst voorkomt dat past op onze regexp. Die regels worden dan getoond als output. In regexp-jargon wordt dat 'passen op' een match genoemd: grep toont alle tekstregels waarbinnen een stukje tekst voorkomt dat op de gegeven regexp matcht. Je moet op dit punt goed onderscheid maken tussen enerzijds de reguliere expressies als specificatietaal, en anderzijds het specifieke gedrag van een bepaald commando dat we als demonstratie-vehikel gebruiken. Het 'toon de omhullende tekstregel' is specifiek voor het commando grep. Als we als demonstratie-vehikel een editor hadden gebruikt met een search/replace opdracht dan was het gevonden stukje tekst vervangen door een ander. Maar dit artikel gaat over het zoeken: hoe specificeer je wat je wilt (laten) zoeken, en hoe gaat dat zoeken precies in zijn werk. Alle commando s die regexp-notatie ondersteunen, en die we dus als demonstratievehikel kunnen gebruiken, hebben dat stuk functionaliteit gemeenschappelijk. 2. Drie generaties regexp De UNIX reguliere expressies zijn ontworpen in de eerste helft van de jaren 70. Daarna heeft de tijd niet stilgestaan, en zijn nieuwe ideeën toegevoegd. Tegenwoordig kun je drie generaties van reguliere expressies tegenkomen: BRE s: de Basic Regular Expressions. commando swordt gehanteerd. Dit is de basisvorm die in de meeste ERE s: de Extended Regular Expressions. Zehebben meer mogelijkheden dan de BRE s, maar zijn niet helemaal upward compatible. Dus je moet bij een commando wel weten of dat BRE s of ERE s ondersteunt. Veel commando s doen als default BRE s, maar met een vlaggetje kun je ze naar ERE-support schakelen. De Posix-standaardisatie heeft preciese specificaties vastgelegd voor zowel BRE s als ERE s. Maar als je ergens de term 'Posix'-regular expressions tegenkomt dan bedoelt men meestal de ERE s. Bijvoorbeeld de programmeertaal PHP bevat daarvan vele voorbeelden. De ontwerper van de programmeertaal Perl heeft ook veel nieuwe ideeën op regular-expressie gebied ingebracht. De Perl Reguliere Expressies vormen dus de jongste van de drie generaties. Ook voor deze generatie geldt dat áls een commando m ondersteunt, daar meestal een apart vlaggetje voor moet worden meegegeven. In dit artikel beginnen we met de Basic Regular Expressions. 3. Basisvor m De eenvoudigste reguliere expressies zijn letterlijke teksten: als je een eenvoudig stukje tekst zoekt dan schrijf je dat recht-toe-recht-aan op. Als we zoeken naar a dan vindt grep alle regels met een letter a erin:
3 Reguliere expressies 3 $ grep a woordjes appel pinda mat Als je zoekt naar aa dan vindt grep alle regels waarin aa voorkomt: $ grep aa woordjes Een regexp zoals appel levert alle regels op waarop het appel voorkomt; dit kan uiteraard ook onderdeel van een groter woord zijn (hier ). Dus strikt genomen zoekt grep niet naar appel als woord, maar naar appel als string. Vrijwel alle tekens waarmee je een reguliere expressie opschrijft worden gezien als letterlijke letters. Maar een paar (lees-)tekens hebben een bijzondere betekenis. We kunnen daarmee extra eisen stellen. 3.1 Veranker ing in reguliere expressies Bijvoorbeeld kunnen we grep laten zoeken naar regels die beginnen met een a. Hiervoor laten we onze reguliere expressie beginnen met het speciale symbool ˆ De reguliere expressie ˆa wordt vertaald in: zoek naar een a die aan het begin van een regel staat. Dus: $ grep ˆa woordjes appel Op dezelfde manier betekent een $ aan het einde van een regexp dat het gezochte aan het einde van de regel moet staan. Daar mag dan zelfs geen spatie meer achter staan. Dus we schrijven als regexp a$ om de regels te vinden die eindigen op een a: $ grep a$ woordjes pinda
4 Reguliere expressies 4 Als aa twee op elkaar volgende letters a zoekt, dan moet ˆ$ een lege regel vinden. Immers op een lege regel volgt het einde meteen op het begin: En inderdaad: $ grep ˆ$ woordjes dit is de lege regel uit ons bestand Het vasthaken van een reguliere expressie aan het begin en/of het einde van de regel heet verankering. ˆ voorop in een regexp betekent dat het te zoeken patroon aan het begin van een regel moet staan. $ achteraan een regexp betekent dat het te zoeken patroon aan het eind van een regel moet staan. 3.2 Meerderetekens als alterna tief op één positie Kunnen we grep nu ook vragen om alle plaatsen waar òf een a òf een l voorkomt? Dat kan door gebruik te maken van een constructie die een keuze uit verschillende tekens mogelijk maakt. Als we schrijven [al] dan zoeken we daarmee één teken, maar dat teken mag zowel een a als een l zijn. Dus tussen de blokhaken sommen we alle voor ons acceptabele letters op. Zoeken naar een a of een l gaat als volgt: $ grep [al] woordjes appel lopen pinda mat We zien dat sommige woorden zowel een a als een l bevatten, maar ieder gevonden woord bevat minstens één van de twee letters. Als we laten zoeken naar [aeo][aou] dan zoeken we naar twee opeenvolgende letterposities, waarbij we op de eerste een a of e of o accepteren, en op de tweede positie een a of o of u. Merk dus op dat een regexp-specificatie positie voor positie aan elkaar schakelt wat we precies willen zoeken.
5 Reguliere expressies 5 grep vindt alle regels eindigend op een a of een l met: $ grep [al]$ woordjes appel pinda 3.3 De complementaire verzameling We gaan het nog algemener maken: we willen bijvoorbeeld zoeken naar alle regels die niet op een a eindigen. Dan zouden we tussen twee blokhaken een uitputtende lijst van alle mogelijke tekens moeten maken die geen a zijn. Dat is veel werk; bovendien is het lastig om zeker te weten of we wel alle tekens hebben gehad. Dus moet er een notatie zijn voor een niet-a. Demanier om dat op te geven is [ˆa]; iets nauwkeuriger: een willekeurig teken dat alleen niet de waarde van de tekens tussen de blokhaken mag hebben (hier dus niet een a). Pas op: het dakje kan in reguliere expressies dus twee verschillende dingen betekenen: aan het begin van een regexp is het het regelbegin-anker symbool, en vlak na een blokhaak-openen geeft hij aan de rest van wat tussen die blokhaken staat een niet dezen betekenis. Dus alle regels die niet eindigen op een a vind je via: $ grep [ˆa]$ woordjes appel piet. lopen mat pint Let op: de lege regel vinden we niet, want die heeft geen enkele letter op de regel dus zelfs geen niet-a.
6 Reguliere expressies 6 Nog een voorbeeld: alle regels die met een niet-a beginnen zijn: $ grep ˆ[ˆa] woordjes piet. lopen pinda mat pint Het eerste ˆ is beginanker: hij matcht het begin van de regel. Het tweede ˆ keert de betekenis van de blokhaken-verzameling om. We moeten wel opletten, want grep [ˆa] doet niet het omgekeerde van grep a. Kijk maar: $ grep [ˆa] woordjes appel piet. lopen pinda mat pint Iedere regel bevat immers wel ergens een niet-a,behalve die lege regel natuurlijk. 3.4 Eén willekeur ig teken We kunnen ook aangeven dat op een positie een willekeurig teken mag staan. Dat is dus ruimer dan een beperkte verzameling opgesomd tussen blokhaken. Bijvoorbeeld: zoek naar een rijtje van vier letters waarvan de eerste en de laatste een a moeten zijn. Tussen die twee in accepteren we elk willekeurig teken. In reguliere expressies schrijven we dat als a..a, waarbij de punt (.) de notatie voor hier een willekeurig teken is. Bij ons voorbeeldbestand vinden we dan met grep: $ grep a..a woordjes Bij past namelijk arda. Aangezien het jargon in het Engels is, hoor je ook vaak: de reguliere expressie a..a matchtopdestring aria in het woord.
7 Reguliere expressies Speciale tekens ontkrachten En hoe moeten we de regels zoeken die eindigen op een punt? Niet met.$ want dat toont alle niet-lege regels (regels met één teken vlak voor het einde). Hiervoor is een systematische oplossing: een teken dat een bijzondere betekenis heeft binnen reguliere expressies kunnen we die bijzondere betekenis afpakken door er een backslash \ voor te zetten zetten. Daarmee degraderen we dat speciale teken tot: hier bedoelen we m als letterlijk dát teken. Merk op dat door deze aanpak de backslash zelf ook een speciaal teken in de regexp-taal is geworden. Dus zoeken van één letterlijke backslash moet zo: \\ De regels die eindigen op een punt vinden we zo: $ grep \.$ woordjes piet. Merk op dat dit gebruik van backslash om een symbool te ontdoen van zijn speciale betekenis ook in de shell-taal voorkomt. De shell-taal kent ook quotes als alternatieve notatie voor ditzelfde 'ontkrachtings'-doel. De regexp-taal kent quotes voor dit doel niet. 3.6 Eén teken in reguliere expressies Er zijn dus vier methoden om een teken in een reguliere expressie aan te geven. In volgorde van meest tot minst nauwkeurig gespecificeerd, zijn dit: a een teken dat letterlijk zo moet voorkomen (hier dus een a). \. ook een letterlijk teken, met name als dat teken binnen reguliere expressies iets bijzonders betekent (hier in dit voorbeeld een letterlijke punt). [abc] het gezochte teken moet er één uit het opgesomde rijtje zijn (hier dus een a of een b of een c) [ˆ0123] we zoeken op deze plek één willekeurig teken, zo lang het maar niet eentje uit het opgesomde rijtje is. In dit voorbeeld mag het dus geen 0, 1, 2 of 3 zijn.. een willekeurig teken Een teken dat soms verwarring kan scheppen is de TAB (in de ASCII-tabel het teken met waarde 9). De TAB telt ook in reguliere expressies als één enkel teken. De TAB zorgt echter voor het schuiven van de cursor naar de volgende tabulator-stop. Op het scherm kun je daarom (afhankelijk van de positie waar de TAB op het scherm terecht komt ) meerdere spatie-stappen zien.
8 Reguliere expressies 8 Reeksen tekens tussen blokhaken mag je afkorten met een liggend streepje: bijvoorbeeld [a z] betekent: elke kleine letter uit het alfabet. Hier moet een waarschuwing bij: de onderlinge volgorde van tekens ligt vast in de z.g. ASCII-characterset standaard. Daarin zijn de kleine letters onderling opeenvolgend, evenals de hoofdletters en de cijfers. Maar gebruik nooit iets als [a Z]; dat zal fout gaan omdat je daarbij aanneemt dat de hoofdletters op de kleine volgen. Gebruik in plaats daarvan [a za Z]. Letters met accenten komen in de ASCII-characterset helemaal niet voor. Daarover volgt later meer informatie. 3.7 De Kleene-ster Stel nu dat we zoeken naar woorden waar een combinatie van de letters n, o en t voorkomt in die volgorde achter elkaar. En het aantal letters o maakt ons hierbij niet uit. We willen dus zoeken naar not,naar noot,naar nooot enzovoorts. Deze herhaling kunnen we aangeven door achter een teken een sterretje te plaatsen 2 :dat teken accepteren we dan nul of meer keren achter elkaar. Wezoeken dus: $ grep no*t woordjes pint De regel pint doet mee want hij bevat een n en een t, endaartussen nul keren een o. Als we specifiek dat nul-geval niet willen, moeten we schrijven: $ grep noo*t woordjes dat wil zeggen, minstens één o en eventueel meer. Deeerste o staat op eigen benen, en de o daarachter hoort bij de *. Anders gezegd: we willen in ieder geval één o, en optioneel accepteren we meerdere daarachter, Dat laatste toont de werkelijke kracht van de *: hij zegt dat een bepaalde component optioneel is. Met de * bouw je optionele delen in je regexp. Bijvoorbeeld: toen we eerder de $ behandelden als einde-regel anker, schreven we daarbij als waarschuwing: de voorafgaande expressie moet aan het einde van een regel matchen; daar mag nog geen spatie achter staan. Maar stel dat we dit willen afzwakken en eventueel spaties toch mee willen accepteren. Dan laten we onze 2. Dit sterretje is genoemd naar de wiskundige Steve Kleene, die de theoretische grondslag voor de reguliere expressies heeft bedacht: closure
9 Reguliere expressies 9 reguliere expressie eindigen op *$ (spatie ster dollar) om uit te drukken dat vlak voor het einde van de regel optioneel nog spaties mogen staan. De * werkt op het voorafgaande element, en dat mag een specificatie in [...]-vorm zijn. Dus: $ grep [aeio][aeio][aeio]* woordjes piet. vraagt om 'twee of meer' voorkomens van a,e,i,o: twee stuks [aeio] staan op eigen benen, en optioneel nog (nul of) meerdere [aeio] daarachter. Merk op dat dit niet betekent: 'twee of meer a' of'twee of meer e' enz, maar 'twee of meer elementen die elk voor zich matchen op [aeio]'. * na een teken (of een veldje) betekent dat dat teken nul of meer keren herhaald op die plek mag voorkomen. Stel nu opnieuw dat we alle woorden willen hebben waarin geen a voorkomt. De eis is dan dat het eerste tot en met het laatste teken een niet-a is. Dus: $ grep ˆ[ˆa]*$ woordjes piet. lopen pint Door de verankering, het ˆ vooraan en de $ aan het eind van de expressie, voorkomen we de problemen die we eerder hadden met grep [ˆa] We moeten nu zeker niet het sterretje vergeten, want zonder sterretje zoeken we een regel met precies één teken erop, dat ook nog eens een niet-a moet zijn. Merk op dat we ook de lege regel vinden, omdat het sterretje ook nul keer een niet-"a toestaat. Op dezelfde wijze kunnen we zoeken naar alle regels die alleen maar de letters g tot en met t bevatten: $ grep ˆ[g t]*$ woordjes pint
10 Reguliere expressies 10 Als we de lege regel niet willen hebben, wordt het: $ grep ˆ[g t][g t]*$ woordjes pint Zoeken we nu naar regels die met een a beginnen en op een t eindigen. Tussen de a en de t mogen willekeurige tekens staan (en ook willekeurig veel). Daarmee komen we tot: $ grep a.*t woordjes mat We vinden er natuurlijk te veel, want we zijn de verankering vergeten. We vinden bijvoorbeeld mat omdat we niet eisen dat de regel met een a begint. Beter is: $ grep ˆa.*t$ woordjes Hoe vinden we nu de woorden die twee maal een e bevatten? Als volgt: $ grep e.*e woordjes Zoekt dit alle regels met precies twee maal een e erop? Nee,kijk maar: $ grep a.*a woordjes We moeten immers uitsluiten dat alle andere tekens die zelfde letter zijn. Om te weten dat we alle tekens hebben, gebruiken we verankering: $ grep ˆ[ˆa]*a[ˆa]*a[ˆa]*$ woordjes 3.8 Nog meer herhalingen De Kleene-ster die volgt op een regexp zegt: van die regexp accepteer ik nul of meer herhalingen. Het is mogelijk om voor die nul of meer andere aantallen te kiezen, hoewel dat in de praktijk weinig wordt gebruikt. Het gaat met de notatie: regexp\{m,n\}
11 Reguliere expressies 11 Achter de regexp geven we met backslashes en accolades de gewenste aantallen op. De m en n zijn gehele getallen 0 en geven de gewenste van-tot/met range aan. Er zijn twee variaties mogelijk: regexp\{m,\} m stuks en meer (minstens m) regexp\{m\} precies m stuks Dus regexp* is hetzelfde als regexp\{0,\} 3.9 Character classes We hebben gezien dat je tussen blokhaken een streepje (hyphen) tussen twee characters kunt zetten om een range aan te geven, bijvoorbeeld [0 9] of [a za Z] Maar dit is een range volgens de ASCII-standaard, en daar zit slechts een beperkt aantal characters in. Letters met accenten (officieel: met diacritische tekens) ontbreken, evenals allerlei nationale uitbreidingen zoals de ß, de ð of de Daarom zijn er verzamelnamen gemaakt, waarmee je in een klap een hele verzameling van tekens kunt aanduiden, inclusief alle non-ascii variaties die er bestaan: reguliere expressie [:alpha:] [:lower:] [:upper:] [:digit:] [:xdigit:] [:alnum:] [:punct:] [:graph:] [:print:] [:cntrl:] [:blank:] [:space:] betekenis een letter een lower case letter een upper case letter een decimaal cijfer een hexadecimaal cijfer een letter of cijfer alle leestekens een zichtbaar,printable char (geen spatie/tab) alles behalve control characters een control character een spatie of een tab spatie,tab,form feed, vertical tab, newline,carriage return Deze verzamelnamen mag je alleen gebruiken tussen de regexp-blokhaken. Omdat bij de namen zelf ook blokhaken horen moet je zorgen om niet in die haken verstrikt te raken. Bijvoorbeeld: [[:alpha:]2 5] staat voor een positie waarop een letter staat óf een van de cijfers 2 t.m. 5. Het is belangrijk om te beseffen dat we hiermee méér dan de ASCII-verzameling aankunnen, maar we blijven wel binnen het Latijnse alfabet. Uitbreiden naar andere alfabetten, of zelfs naar alfabet-loze talen (Chinees, Japans, Koreaans) is een specialisme apart.
12 Reguliere expressies Het huishoudelijk reglement Als de expressies ingewikkelder worden krijg je misschien verschillen in interpretatie van hun betekenis. Er is een soort huishoudelijk reglement om de eenheid te bewaren: Een regexp matcht alleen maar binnen een regel. Je zult dus nooit een match krijgen die bestaat uit de staart van een regel, en dan doorlopend in de kop van de volgende regel. Anders gezegd: als in de data een nieuwe regel begint, krijgt het zoeken van een matcheen soort reset. Binnen een regel wordt de eerste matchende plek genomen. Deze bepaling geldt alleen maar in editor search/replace situaties. Ze heeft dus eigenlijk betrekking op het replacen en niet op het zoeken. In de editor-commandotaal zit altijd wel een mogelijkheid om deze beperking te omzeilen. Een regexp is 'greedy' (gulzig). Ze pakt altijd het langst passende stuk. Dit geldt met name voor het gedrag van het sterretje. Als je bijvoorbeeld zoekt naar e*l in de tekstregel veel ervaring dan kun je, als advocaat van de duivel, zeggen dat niet alleen het stukje eel matcht, maar op diezelfde plek matcht ook el en zelfs de l alleen. In dit soort discussies wordt de knoop doorgehakt door de longest match bepaling: het wordt de langste die past. Deze bepaling is ondergeschikt aan de vorige. Dus als aan het begin van een regel een korte match zit, maar verderop in de regel is een andere, veel langere matchtehalen, dan telt tochdegene het meest vooraan in de regel Veldjes voor back-reference De Basic Reguliere Expressies kennen als extra het markeren van veldjes. We kunnen dan in die reguliere expressie refereren aan zo n veldje, en daarmee vragen dat een deel van de expressie wordt herhaald. Deze techniek heet back-referencing. Laten we een voorbeeld nemen. Hierboven keken we naar alle regels waarop aa voorkwam. Stel nu dat we alle regels willen hebben waarop een teken twee keer direct na elkaar voorkomt. Dat doen we als volgt: $ grep \(.\)\1 woordjes appel Hier geeft de backslash voor de haakjes juist aan dat die haakjes niet letterlijk moeten worden genomen, maar een speciale veldmarkering aangeven 3. Dat is 3. In de Extended Regular Expressions hebben ronde haakjes een heel andere betekenis gekregen, dus daar komt back-referencing niet voor.
13 Reguliere expressies 13 tegenstrijdig met de normale UNIX-betekenis van backslashes, die een speciale betekenis juist ontkrachten. In dit voorbeeld zoeken we een willekeurig teken en door hetzelfde teken gevolgd moet worden: \1 refereert aan wat er tussen de haakjes staat (het nummertje mag 2 of hoger zijn als je meerdere veldjes hebt gemarkeerd). Zoeken naar rijtjes van vier tekens met het eerste en vierde gelijk aan elkaar doen we dus met: $ grep \(.\)..\1 woordjes \(regexpr\) definieert een veldje, waarvan de inhoud de match van de reguliere expressie regexpr is. De haken zelf hebben geen invloed op wat er precies wordt gematcht. Anders gezegd: een regexp mèt of zonder dit soort haken matcht precies dezelfde tekst. De haken dienen om het volgende punt te ondersteunen. \n (n is een cijfer 1-9) matcht hetzelfde als waar het veldje dat begint bij het n-de haakje-openen op past. Als we meerdere veldjes gebruiken, komt de nummering van de veldjes overeen met het haakje openen van de veldjes. Bijvoorbeeld: $ grep \(.\(.\)\)\2\1 woordjes We vinden hier dus alle regels waarop een rijtje van vijf tekens voorkomt, waarbij de eerste twee tekens hetzelfde zijn als de laatste twee en ook het tweede en derde teken gelijk zijn. Merk op dat dit niet hetzelfde is als: ik bedoel dezelfde reguliere expressie als ik tussen de haken had opgeschreven. Het gaat niet om een herhaling van de expressie zelf, maar om een herhaling van wat die expressie had gevonden. Dit voorbeeld laat meteen ook zien dat 'nesting' van dit soort haakjes is toegestaan. In veel editors zien we dat bij een search-replace operatie deze back-reference notatie zichook uitstrekt tot het replace-gedeelte van het commando. 4. ERE s: de Extended Regular Expressions Enkele jaren na de komst van de 'gewone' Basic Regular Expressions in UNIX zijn, als verbetering en uitbreiding, de Extended Regular Expressions gekomen. Ze zijn niet helemaal compatibel met de Basic RE s. Daarom zijn geen commando s 'stilzwijgend' uitgebreid naar deze nieuwe mogelijkheden: je moet ófwel een speciaal vlaggetje geven (zoals de e vlag bij grep, ofde r vlag bij de GNU-versie van sed), ófwel je moet gewoon weten dat een bepaald commando alleen ERE s doet (zoals awk).
14 Reguliere expressies 14 Terugkijkend op wat we in dit artikel al over de BRE s hebben gezegd zijn de belangrijkste veranderingen: De back-referencing met \( en \) haken en de \n terugverwijzing is afgeschaft. Ronde haakjes hebben een heel andere betekenis gekregen. De backslash in \( die betekende dat een ronde haak een speciale betekenis moest krijgen (dus het tegenovergestelde van ontkrachting) is daarmee ook vervallen. Als je nu in ERE s een \( of \) tegenkomt dan betekent dat dat letterlijk een ronde haak wordt bedoeld, ontdaan van zijn (nieuwe) speciale betekenis. Ook bij { en } herhalingsfactor na [...] is de backslash als aanduider van de speciale betekenis voor de accolades vervallen. Accolades zijn nu altijd speciaal. Er moet een backslash voorgezet worden om ze te ontkrachten tot 'ik zoek een letterlijke accolade'. De accolades zelf hebben wel hun oude betekenis gehouden van herhalingsfactor na een [...] bouwsteen. De Kleene ster * heeft + en? als broertjes erbij gekregen. De belangrijkste uitbreiding is dat meerdere RE s via een Booleaanse or met elkaar kunnen worden verbonden en? in ERE s De Kleene-ster * in zijn betekenis van nul of meer herhalingen van de voorafgaande bouwsteen is gebleven. Maar daarnaast is de + gekomen met betekenis: één of meer herhalingen van de voorafgaande bouwsteen. We hebben eerder als voorbeeld behandeld: $ grep ˆ[g t][g t]*$ woordjes en dat kan nu eenvoudiger als: $ grep ˆ[g t]+$ woordjes Verder is de? gekomen in de betekenis van nul of één herhaling. Een consequentie hiervan is dat dus ook de + en? speciale tekens zijn geworden. Wiljezeergens letterlijk zoeken dan moet er een \ voor. Merk op dat de notatie regexp{1,} en regexp{0,1} hetzelfde betekent als deze + en?. In de Basic Regular Expressions moet voor elke accolade een backslash worden gezet, maar dan hebben we deze specificatie daar dus ook beschikbaar. 4.2 Tweeregexp en met Booleaanse or De belangrijkste uitbreiding in de ERE s is de mogelijkheid om twee reguliere expressies met een Booleaanse or aan elkaar te schakelen. Daar komen altijd gewone ronde haken omheen: (eenregexp andereregexp)
15 Reguliere expressies 15 zoekt op die plaats naar een stuk tekst dat óf op de eenregexp matcht, óf op de andereregexp.een beetje ingewikkelder is: eersteregexp(tweederegexp derderegexp)vierderegexp zoekt naar tekst waarvan het beginstuk matcht op de eersteregexp, daaraan vast moet een stuk zitten dat ófwel matcht op de tweederegexp ófwel op de derderegexp, en daarachter moet een stuk zitten dat matcht op de vierderegexp. Met deze ronde haken kun je ook 'meertraps' patronen bouwen: ([a z]+[0 9]+ )+ tussen de haken staat hier dat je een of meer letters zoekt, gevolgd door een of meer cijfers, gevolgd door een spatie, maar met de + buiten de haken zeg je dat je van die combinatie weer een of meer herhalingen accepteert. 5. Filenaam wildcards ver sus reguliereexpressies Filenaam-wildcard notatie en reguliere expressie notatie worden soms door elkaar gehaald. Maar het zijn twee heel verschillende notatie-systemen! Bijvoorbeeld, als je op shell-niveau filenamen wilt hebben die met een letter a beginnen dan zeg je: $ ls a* maar als je die via reguliere expressies wilt zoeken dan gaat het zo: ls grep ˆa Filenaam wildcard expansie wordt door de shell gedaan, nadat je een commandregel hebt afgesloten met enter, en voordat het gevraagde commando van start gaat. In UNIX-jargon heet die expansie ook wel globbing. De shell doet niet aan reguliere expressies, op een weinig gebruikte uithoek na. En 'gewone' commando s doen niet aan filenaam-expansie op enkele uitzonderingen na, zoals find en tar. Filenaam wildcard notatie gaat met de volgende speciale characters: * een reeks van nul of meer characters? exact één character [...] één character uit de verzameling tussen de haken De [...] notatie is toevallig een component die zowel in de reguliere expressies als in de filenaam wildcards voorkomt. Maar variaties met die blokhaken gaan al meteen verschillend. Als je een character, juist niet uit de verzameling wilt hebben dan is dat [ˆ...] bij reguliere expressies en [!...] bij filenaam wildcards. En volgens de Posix-standaard voor filenaam wildcards moet de hyphen tussen blokhaken zich gedragen conform de ingestelde locale. Dat kan betekenen dat het globbing gedrag case-insensitive wordt. Dus [a z] zal in dat geval ook op hoofdletters in de filenaam matchen.
16 Reguliere expressies 16
Reguliere expressies
Reguliere expressies 1. Introductie Reguliere expressies vormen een specificatie-taal die een rol speelt als je in een grote hoeveelheid tekst een bepaald stukje zoekt. Het zoekwerk laat je door je computer
Tekstmanipulatie. Week 3: Reguliere expressies. Gosse Bouma 2007/2008. Informatiekunde Rijksuniversiteit Groningen
Tekstmanipulatie Week 3: Reguliere expressies Gosse Bouma [email protected] Informatiekunde Rijksuniversiteit Groningen 2007/2008 Gosse Bouma 1/38 Overzicht 1 Wildcards 2 Keuze 3 Ranges 4 Begin en Eind van
Reguliere Expressies
Reguliere Expressies Een reguliere expressie (regexp, regex, regxp) is een string (een woord) die, volgens bepaalde syntaxregels, een verzameling strings (een taal) beschrijft Reguliere expressies worden
Automaten. Informatica, UvA. Yde Venema
Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................
Zoeken in de digitale collecties van de NVBS Bibliotheek versie 25oktober 2014
Zoeken in de digitale collecties van de NVBS Bibliotheek versie 25oktober 2014 Inleiding De bibliotheek collecties hebben twee verschillende zoekmogelijkheden: grasduinen (browsen) en zoeken. Bij grasduinen
Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.
HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een
Korte uitleg: Wat doet de shell met mijn commandoregel?
Korte uitleg: Wat doet de shell met mijn commandoregel? Het onderstaande is heel erg Bash gericht, maar geldt i.h.a. ook voor andere shells. Vooral als het om "begrip" gaat. Iedere regel die aan de shell
PYTHON REEKS 1: BASICS. Mathias Polfliet
PYTHON REEKS 1: BASICS Mathias Polfliet [email protected] EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte
Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.
In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen
Rekenen met de GRM. 1 van 1. Inleiding: algemene zaken. donkerder. lichter
1 van 1 Rekenen met de GRM De grafische rekenmachine (voortaan afgekort met GRM) ga je bij hoofdstuk 1 voornamelijk als gewone rekenmachine gebruiken. De onderste zes rijen toetsen zijn vergelijkbaar met
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.
Datastructuren 2016 Programmeeropdracht 3: Patroonherkenning Deadlines. Woensdag 23 november 23:59, resp. vrijdag 9 december 23:59. Inleiding. Deze opdracht is gebaseerd op Hoofdstuk 13.1.7 in het boek
Numerieke benadering van vierkantwortels
HP Prime Grafische Rekenmachine Numerieke benadering van vierkantwortels Doel: De waarde van een vierkantswortel met een recursieve rij benaderen, het schrijven van een klein programma. Sleutelwoorden:
maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect
maplev 2010/7/12 14:02 page 15 #17 Module 2 Het gebruik van Maple, vervolg Onderwerp Voorkennis Expressies Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect
Niet-numerieke data-types
Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,
Instellen Finchline Topics & Booleaans zoeken
Instellen Finchline Topics & Booleaans zoeken Versie 3.0 Introductie In deze handleiding wordt uitgelegd hoe je in Finchline topics kunt instellen. Een topic is een zoekactie naar een bepaald onderwerp.
MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara
MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld
Breuken met letters WISNET-HBO. update juli 2013
Breuken met letters WISNET-HBO update juli 2013 De bedoeling van deze les is het repeteren met pen en papier van het werken met breuken. Steeds wordt bij gebruik van letters verondersteld dat de noemers
opgaven formele structuren deterministische eindige automaten
opgaven formele structuren deterministische eindige automaten Opgave. De taal L over het alfabet {a, b} bestaat uit alle strings die beginnen met aa en eindigen met ab. Geef een reguliere expressie voor
Korte uitleg: Haakjes en Aanhalingstekens
Korte uitleg: Haakjes en Aanhalingstekens Wie naar een wat ingewikkelder bash script kijkt ziet een verwarrende hoeveelheid van allerlei soorten haakjes en aanhalingstekens. Die verwarring is normaal gezien
Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
OEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
5.327 703 x 15.981 3.728.900 + 3.744.881. 2.160 3.007 x 15.120 6.480.000 + 6.495.120. 2.160 3.007 x 15.120 00.000 0 00.000 6.480.000 + 6.495.
Bij vermenigvuldigen van twee grote getallen onder elkaar staan de rijen onder de streep elk voor een tussenstap. De eerste rij staat voor het vermenigvuldigen met het cijfer dat de eenheden van het onderste
Herwig s Tip van de dag
Herwig s Tip van de dag Word [email protected] Wie zoekt, die vindt Trefwoorden: Zoeken en vervangen Jokertekens Het zoeken en vervangen zijn basisfuncties in tekstverwerking die iedereen wel vaker gebruikt.
Opgaven. Python Assessment
Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen
OEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
[8] De ene 1 is de andere niet
[8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.
Rekenen met verhoudingen
Rekenen met verhoudingen Groep 6, 7 Achtergrond Leerlingen moeten niet alleen met de verhoudingstabel kunnen werken wanneer die al klaar staat in het rekenboek, ze moeten ook zelf een verhoudingstabel
Automaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Beschrijven van reguliere talen Jeroen Keiren [email protected] VU University Amsterdam 5 Februari 2015 Talen Vorig college: Talen als verzamelingen Eindige automaten:
1.3 Rekenen met pijlen
14 Getallen 1.3 Rekenen met pijlen 1.3.1 Het optellen van pijlen Jeweetnuwatdegetallenlijnisendat0nochpositiefnochnegatiefis. Wezullen nu een soort rekenen met pijlen gaan invoeren. We spreken af dat bij
Formeel Denken 2014 Uitwerkingen Tentamen
Formeel Denken 2014 Uitwerkingen Tentamen (29/01/15) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Als het regent word ik
Optellen van twee getallen onder de 10
Splitsen tot 0 uit het hoofd 2 Optellen 2 7 6 2 5 3 4 Splitsen tot 20 3 2 8 7 2 6 3 5 4 4 4 3 2 2 9 8 2 7 3 6 4 5 5 4 2 3 0 9 2 8 3 7 4 6 5 5 6 5 2 4 3 3 Bij een aantal iets erbij doen heet optellen. Je
Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?
1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.
Beknopte handleiding voor Derive 5.0 for Windows
- Lesbrief Beknopte handleiding voor Derive 5.0 for Voorspelbaarheid en Populaties in de tijd Doelgroep Klas 5 t/m 6 havo en vwo Vakken en domeinen Algemene natuurwetenschappen VWO Wiskunde VWO: A domein
Beknopte handleiding Dragon NaturallySpeaking. Premium versie 13
1 Beknopte handleiding Dragon NaturallySpeaking Premium versie 13 1 Eerste gebruik van Dragon: installatie en een gebruikersprofiel aanmaken De spraakherkenningssoftware Dragon is beschikbaar als vaste
BEGINNER JAVA Inhoudsopgave
Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire
3. Structuren in de taal
3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we
Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.
Excel Inleiding Het woord computer betekent zoiets als rekenmachine. Daarmee is is eigenlijk aangegeven wat een computer doet. Het is een ingewikkelde rekenmachine. Zelf voor tekstverwerken moet hij rekenen.
PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.
Inleiding Computers en andere digitale apparatuur is tegenwoordig niet meer weg te denken in de huidige samenleving. Zonder programma s zijn deze apparaten echter niets waard. Het zijn de programma s die
1.1 Rekenen met letters [1]
1.1 Rekenen met letters [1] Voorbeeld 1: Een kaars heeft een lengte van 30 centimeter. Per uur brand er 6 centimeter van de kaars op. Hieruit volgt de volgende woordformule: Lengte in cm = -6 aantal branduren
OEFENINGEN PYTHON REEKS 1
OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en
Handleiding Word>Markdown
Handleiding Word>Markdown Voor het laten zien van de geschiedenis van bepaalde huizen op de website gaan we een bepaalde vorm van Markdown gebruiken. Markdown is een manier waarop je simpel tekst een bepaalde
van PSD naar JavaScript
2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en
1.0 Voorkennis. Getallenverzameling = Verzameling van getallen met een bepaalde eigenschap
1.0 Voorkennis Getallenverzameling = Verzameling van getallen met een bepaalde eigenschap Natuurlijke getallen: Dit zijn alle positieve gehele getallen en nul. = {0, 1, 2, 3, 4, 5, 6,...} De getallen 0,
2. Syntaxis en semantiek
2. Syntaxis en semantiek In dit hoofdstuk worden de begrippen syntaxis en semantiek behandeld. Verder gaan we in op de fouten die hierin gemaakt kunnen worden en waarom dit in de algoritmiek zo desastreus
1 Rekenen met gehele getallen
1 Inhoudsopgave 1 Rekenen met gehele getallen... 1.1 De gehele getallen... 1. Optellen... 1. Opgaven... 1. Aftrekken... 1. Opgaven... 1. Vermenigvuldigen... 1. Opgaven... 1.8 Delen... 9 1.9 Opgaven...9
Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen
Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen Ter inleiding: tellen Turven, maar: onhandig bij grote aantallen. Romeinse cijfers: speciale symbolen voor
Hoofdstuk 20: Wiskundige functies
Hoofdstuk 20: Wiskundige functies 20.0 Introductie Er is een uitgebreid aanbod aan wiskundige functies in Excel, variërend van het simpele + teken tot de esoterische statistiek functies voor een correlatie
Extra s. Extra s bij HTML en CSS - de basis, 3e editie. X X Extra tekst: subscript en superscript. Extra tekst: entiteiten
Extra s bij HTML en CSS - de basis, 3e editie X X Extra tekst: subscript en superscript XX Extra tekst: entiteiten GEEN DOCTYPE In de meeste browsers kun je de html-code van een webpagina bekijken (zoek
Uitwerkingen. Python Assessment
Uitwerkingen Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Uitwer king 1: Elementairedatatypes 1.a Een string bevat tekst in de vorm van Unicode characters, terwijl
Elementaire rekenvaardigheden
Hoofdstuk 1 Elementaire rekenvaardigheden De dingen die je niet durft te vragen, maar toch echt moet weten Je moet kunnen optellen en aftrekken om de gegevens van de patiënt nauwkeurig bij te kunnen houden.
Initiatiefnemer Ben Vaske, Stichting Expertisecentrum Oefenen.nl. Projectmanagement Claudette Verpalen, Utrecht
Klik & Tik Werkboek Dit werkboek is ontwikkeld door Stichting Expertisecentrum Oefenen.nl in het kader van het Actieplan Laaggeletterdheid 2012-2015 Geletterdheid in Nederland en mogelijk gemaakt door
Talstelsels. Het is belangrijk om de volgende twee zaken uit elkaar te houden:
Talstelsels 1. Inleiding Wie professioneel met computers omgaat, krijgt te maken met verschillende talstelsels: tweetallig (binair), zestientallig (hexadecimaal) en soms ook achttallig (octaal). Dit verhaal
1 Inleiding in Functioneel Programmeren
1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp
Python. Informatica. Renske Smetsers
Python Informatica Renske Smetsers Hoofdstuk 10 Hoofdstuk 10: Strings Na deze les kun je: Uitleggen waar je strings voor gebruikt Strings gebruiken over meerdere regels Indices voor strings gebruiken Strings
1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12
Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal
Modelit Matlab Table Handleiding
Modelit Elisabethdreef 5 4101 KN Culemborg [email protected] www.modelit.nl Modelit Matlab Table Handleiding Inhoud 1 Achtergrond... 1 2 Inleiding... 1 3 Het markeren van rijen in een tabel... 2 4 Het sorteren
Lab Webdesign: Javascript 3 maart 2008
H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen
4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld
Praktische-opdracht door een scholier 1959 woorden 1 juni 2001 4,7 331 keer beoordeeld Vak Wiskunde Tientallig stelsel In een tientallig stelsel heb je de getallen 0 t/m 9 tot je beschikking. Zoals je
PHP. Les 4 : Variabelen
PHP Les 4 : Variabelen Interessante links: o http://www.dbzweb.be/moermant/ o http://php.net/manual/en/function.echo.php o http://www.w3schools.com/php/default.asp Wat zijn variabelen? Variabelen zijn
Les A-03 Binaire en hexadecimale getallen
Les A-03 Binaire en hexadecimale getallen In deze les wordt behandeld hoe getallen kunnen worden voorgesteld door informatie die bestaat uit reeksen 0-en en 1-en. We noemen deze informatie digitale informatie.
3 De stelling van Kleene
18 3 De stelling van Kleene Definitie 3.1 Een formele taal heet regulier als hij wordt herkend door een deterministische eindige automaat. Talen van de vorm L(r) met r een reguliere expressie noemen we
Booleaanse operatoren en de nabijheidsoperator
Booleaanse operatoren en de nabijheidsoperator De kunst om een zoekopdracht zodanig te verfijnen d.m.v. uitlsuiting en verplichte combinatie van trefwoorden zodat uw resultatenlijst enkel relevante artikels
Simon de schildpad. 2012 J van Weert 1
Programmeren met Simon Simon de schildpad 2012 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.
DE INTERACTIEVE SHELL
Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren
Installatie Software - Opdrachten Les 2
Installatie Software - Opdrachten Les 2 ROC van Amsterdam Gooi en Vechtstreek Naam: Klas: Datum: 2010 Jansn 1 van 11 is een operating system dat ten grondslag ligt aan de verschillende versies van Windows.
Handleiding Booleaans Zoeken en profielen instellen
Handleiding Booleaans Zoeken en profielen instellen Versie 1.8 www.howardshome.com Fultonbaan 30 Telefoon +31 (0)30 6083 540 KvK 20093764 Postbus 1092 Fax +31 (0)30 6083 549 ABN AMRO 54.85.62.202 3430
2. Hoe zoeken in deze databank?... 2. 2.1 Snelzoeken... 2. 2.2 Eenvoudig zoeken... 4. 2.3 Geavanceerd zoeken... 5. 2.4 Zoeken via zoekbomen...
Abraham Gids voor het gebruik van de databank Inhoudsopgave 1. Wat is Abraham?... 2 2. Hoe zoeken in deze databank?... 2 2.1 Snelzoeken... 2 2.2 Eenvoudig zoeken... 4 2.3 Geavanceerd zoeken... 5 2.4 Zoeken
Zelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
Hoofdstuk 20. Talstelsels
Hoofdstuk 20. Talstelsels 20 Kennismaking: talstelsels... 328 Talstelsels invoeren en converteren... 329 Wiskundige bewerkingen uitvoeren met Hex of Bin getallen... 330 Bits vergelijken of manipuleren...
Uiteenzetting Wiskunde Grafische rekenmachine (ti 83) uitleg
Uiteenzetting Wiskunde Grafische rekenmachine (ti 83) uitleg Uiteenzetting door een scholier 2691 woorden 4 juni 2005 5,9 118 keer beoordeeld Vak Wiskunde Basisbewerkingen 1. Inleiding De onderste zes
Simon de schildpad. 2015 J van Weert 1
Programmeren met Simon Simon de schildpad 2015 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.
Eenvoudige breuken. update juli 2007 WISNET-HBO
Eenvoudige reuken update juli 2007 WISNET-HBO De edoeling van deze les is het repeteren met pen en papier van het werken met reuken. Steeds wordt ij geruik van letters verondersteld dat de noemers van
Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6
Inhoud eindtoets Eindtoets Introductie 2 Opgaven 3 Terugkoppeling 6 1 Formele talen en automaten Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen van de cursus
Alle noten op de lijnen (E)en (G)oede (B)oer (D)ie (F)ietst 2 Alle noten tussen de lijnen F A C E FACE is het engelse woord voor gezicht Voor de notennamen gebruiken we de eerste 7 letters van het alfabet:
Gebruikers Handleiding voor instellingen die gebruik maken van. Nabij Patiënt Testen. Met web applicatie Tropaz 2.0
Bladnr : 1/16 Gebruikers Handleiding voor instellingen die gebruik maken van Nabij Patiënt Testen Met web applicatie Tropaz 2.0 Trombosedienst Leiden Poortgebouw Rijnsburgerweg 10 2333 AA Leiden Telefoon:
De TI-84 (TI-83) 1 Introductie
De TI-84 (TI-83) 1 Introductie 1-1 Algemeen De grafische rekenmachine is een rekenmachine waarmee je ook grafieken kunt tekenen. De belangrijkste toetsen die betrekking hebben op grafieken staan op de
Voorbeeld casus mondeling college-examen
Voorbeeld casus mondeling college-examen Examenvak en niveau informatica vwo Naam kandidaat Examennummer Examencommissie Datum Voorbereidingstijd Titel voorbereidingsopdracht 20 minuten van analoog naar
[13] Rondjes draaien (loops)
[13] Rondjes draaien (loops) Met de if else uit de leerfiche [11] hebben we leren werken met één van de belangrijkste programmeerstructuren in Python. Bijna even belangrijk zijn de verschillende mogelijkheden
Module 3: Scratch programmeren: is het logisch of is het niet logisch?
Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2
Aan de slag met L2S. versie 8
Aan de slag met L2S versie 8 1 Aan de slag met L2S Deze handleiding geeft u de basisinformatie over L2S. Een uitgebreide handleiding vindt u in de werkbalk van het programma onder Help. Hieronder staat
Rekenen aan wortels Werkblad =
Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden
Excel voor de beginner (4) Handleiding van Helpmij.nl
Excel voor de beginner (4) Handleiding van Auteur: CorVerm Juni 2008 Excel voor beginners deel 4. Zoals we in deel drie hebben beloofd gaan we het in deze ronde hebben over het geven van namen aan (een)
opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.
opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): ℵ 0 #A, B = {b 0,..., b n 1 } voor een zeker natuurlijk getal
Handleiding Pawpeds Deel 4
Over ons zoeksysteem Handleiding Pawpeds Deel 4 We hebben drie verschillende zoekfuncties geïmplementeerd en ze werken allemaal een beetje anders. Ze zijn alle teken-ongevoelig, dus 'A' en 'a' zijn hetzelfde
Excel enkele tips Handleiding van Helpmij.nl Auteur: CorVerm Juni 2014
Excel enkele tips Handleiding van Auteur: CorVerm Juni 2014 handleiding: Excel enkele tips Lege cellen, rijen en of kolommen verwijderen Stel dat er lege rijen, kolommen en cellen in je Excel sheet zitten
Symbol for Windows Planner Versie 0.8
Symbol for Windows Planner Versie 0.8 Inhoud Inleiding... 3 1. Weergaven... 4 2. RealTime modus (de agenda raadplegen)... 6 2.1. Wat is een modus... 6 2.2. Eenvoudigste weergave... 6 2.3. Uitgebreidere
Gebruik van command-line operating systems
Gebruik van command-line operating systems Mattias Holm & Kristian Rietveld Overzicht - Waarom hier meer over leren? - Wat is een shell? - Hoe werkt een shell? - Pipes en redirectie - Handige utilities
Introductie tot het werken met een commandoregel
Introductie tot het werken met een commandoregel 23 december 2004 (C) AT Computing, Nijmegen, 2004 Introductie Het volgen van een cursus waarbij een commandoregel wordt gebruikt, wil nog wel eens tegenvallen
Aan de slag met. IntoWords voor Windows (L2S) versie 9
Aan de slag met IntoWords voor Windows (L2S) versie 9 Aan de slag met IntoWords voor Windows / L2S Deze handleiding geeft u de basisinformatie over IntoWords voor Windows / L2S. Een uitgebreide handleiding
De tag aan het begin van het PHPscript is "<?php" aan het einde van het PHPscript gebruik je "?>".
PHP Les 3 Commando ECHO Interessante links: o http://www.donboscozwijnaarde.be/~moermant/ o http://php.net/manual/en/function.echo.php o http://www.w3schools.com/php/default.asp Wat is PHP? PHP is een
Rekenoefening groep 5 Doel
Rekenoefening groep Doel Herhaald springen met sprongen van vanaf t/m Herhaald springen met sprongen van vanaf t/m Materiaal Voor iedere leerling een wisbordje en stift Kopieerblad: Punttekening groep
Projectieve Vlakken en Codes
Projectieve Vlakken en Codes 1. De Fanocode Foutdetecterende en foutverbeterende codes. Anna en Bart doen mee aan een spelprogramma voor koppels. De ene helft van de deelnemers krijgt elk een kaart waarop
