• No results found

Reguliere expressies: Theorie I

N/A
N/A
Protected

Academic year: 2021

Share "Reguliere expressies: Theorie I"

Copied!
19
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Reguliere expressies: Theorie I

Huub de Beer

Eindhoven, 4 juni 2011

(2)

Patronen eenvoudig?

I Patronen zijn overal: je kent ze goed

I En daardoor lijken ze zo eenvoudig

I Maar als je de patronen gaat beschrijven, blijken ze niet zo eenvoudig:

I precisie is belangrijk

I in woorden worden patronen al snel lang

I het is lastig om alle uitzonderingen en speciale gevallen ook op te nemen

I Oplossing: reguliere expressies

(3)

Enkele basisdefinities: alfabet

Alfabet

Een verzameling unieke symbolen noemen we een alfabet

Voorbeelden

I C = ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’

I G = ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’,

‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘0’, ‘1’, ‘2’,

‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’

(4)

Enkele basisdefinities: alfabet

Alfabet

Een verzameling unieke symbolen noemen we een alfabet

Voorbeelden

I C = ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’

I G = ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’,

‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘0’, ‘1’, ‘2’,

‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’

(5)

Enkele basisdefinities: zin

Zin

een reeks aaneengesloten symbolen uit een alfabet A noemen we een zin over alfabet A.

Voorbeelden Gegeven alfabet G.

I ‘aap’

I ‘12konijnen’

I (fout) ‘dit is lastig’

I (fout) ‘06-12552389’

(6)

Enkele basisdefinities: zin

Zin

een reeks aaneengesloten symbolen uit een alfabet A noemen we een zin over alfabet A.

Voorbeelden Gegeven alfabet G.

I ‘aap’

I ‘12konijnen’

I (fout) ‘dit is lastig’

I (fout) ‘06-12552389’

(7)

Enkele basisdefinities: taal

Taal

Een verzameling zinnen gemaakt met symbolen uit een alfabet A noemen we een taal over alfabet A. Vaak worden eisen gesteld waaraan zinnen in een taal moeten voldoen: niet alle combinaties van symbolen in A zijn dan zinnen in de taal.

Voorbeelden Gegeven alfabet G.

I . . ., ‘aaaap’, ‘aaap’, ‘aap’, ‘ap, ‘p’: nul of meer a’s gevolgd door een p.

I ‘jan’: de zin ‘jan’

(8)

Enkele basisdefinities: taal

Taal

Een verzameling zinnen gemaakt met symbolen uit een alfabet A noemen we een taal over alfabet A. Vaak worden eisen gesteld waaraan zinnen in een taal moeten voldoen: niet alle combinaties van symbolen in A zijn dan zinnen in de taal.

Voorbeelden Gegeven alfabet G.

I . . ., ‘aaaap’, ‘aaap’, ‘aap’, ‘ap, ‘p’: nul of meer a’s gevolgd door een p.

I ‘jan’: de zin ‘jan’

(9)

Voorbeeld, zinnen beginnend met een ‘a’

Alfabet A

alfabet A = ‘a’, ‘b’ en ‘c’

Taal L()

De taal L() over alfabet A bestaat uit alle zinnen (over A) die met een ‘a’ beginnen. ‘aab’, ‘a’, ‘aaaaaaa’, ‘acba’

en ‘acccc’ zijn dus zinnen in de taal L(). ‘a4’, ‘23’ en

‘Aab’ zijn geen zinnen in de taal L()

Reguliere expressie a· (a|b|c)

(10)

Voorbeeld, zinnen beginnend met een ‘a’

Alfabet A

alfabet A = ‘a’, ‘b’ en ‘c’

Taal L()

De taal L() over alfabet A bestaat uit alle zinnen (over A) die met een ‘a’ beginnen. ‘aab’, ‘a’, ‘aaaaaaa’, ‘acba’

en ‘acccc’ zijn dus zinnen in de taal L(). ‘a4’, ‘23’ en

‘Aab’ zijn geen zinnen in de taal L()

Reguliere expressie a· (a|b|c)

(11)

Definitie reguliere expressie

Reguliere expressie

Gegeven alfabet A. De volgende expressies zijn reguliere expressies over alfabet A:

I Elk karakterer uit A is een reguliere expressie. We noemen dit soort reguliere expressies ook wel primaire reguliere expressies.

I Als r en s reguliere expressies zijn, dan zijn

I r· s

I r|s,

I ren

I (r ) dat ook.

Elke reguliere expressie specificeert nul of meer zinnen

(12)

Concatenatie: ·

Concatenatie: ·

Koppel twee (of meer) reguliere expressies aan elkaar.

Voorbeeld

I a· a · p: de taal met de zin ‘aap’

I 0· 6 · 1 · 1: het oude alarmnummer

(13)

Concatenatie: ·

Concatenatie: ·

Koppel twee (of meer) reguliere expressies aan elkaar.

Voorbeeld

I a· a · p: de taal met de zin ‘aap’

I 0· 6 · 1 · 1: het oude alarmnummer

(14)

Keuze: |

Keuze: |

Geef een keuze tussen twee (of meer) reguliere expressies aan: óf de ene reguliere expressie óf de andere reguliere expressie wordt ‘gevolgd’

Voorbeeld

I a|b: ‘a’ of ‘b’, maar niet beide

I (a · b)|c ‘ab’ of ‘c’

(15)

Keuze: |

Keuze: |

Geef een keuze tussen twee (of meer) reguliere expressies aan: óf de ene reguliere expressie óf de andere reguliere expressie wordt ‘gevolgd’

Voorbeeld

I a|b: ‘a’ of ‘b’, maar niet beide

I (a · b)|c ‘ab’ of ‘c’

(16)

Herhaling:

Herhaling:

Herhaal een reguliere expressienulof meer keer

Voorbeeld

I a: ‘’, ‘a’, ‘aa’, ‘aaa’, . . .

I (a|b): ‘’, ‘a’, ‘b’, ‘aa’, ‘ab’, ‘aaaaaaaabaaaa’,

‘babbabbbabbbaabb’, . . .

(17)

Herhaling:

Herhaling:

Herhaal een reguliere expressienulof meer keer

Voorbeeld

I a: ‘’, ‘a’, ‘aa’, ‘aaa’, . . .

I (a|b): ‘’, ‘a’, ‘b’, ‘aa’, ‘ab’, ‘aaaaaaaabaaaa’,

‘babbabbbabbbaabb’, . . .

(18)

Groepering: (, )

Groepering: (, )

Haakjes zoals in de wiskunde: hiermee bouw je ingewikkelder reguliere expressies op.

Voorbeeld

I (a|b): ‘’, ‘a’, ‘b’, ‘aa’, ‘ab’, ‘aaaaaaaabaaaa’,

‘babbabbbabbbaabb’, . . .

I (1|2|3|4|5|6|7|8|9|10) · (0|1|2|3|4|5|6|7|8|9) : gehele getallen

(19)

Groepering: (, )

Groepering: (, )

Haakjes zoals in de wiskunde: hiermee bouw je ingewikkelder reguliere expressies op.

Voorbeeld

I (a|b): ‘’, ‘a’, ‘b’, ‘aa’, ‘ab’, ‘aaaaaaaabaaaa’,

‘babbabbbabbbaabb’, . . .

I (1|2|3|4|5|6|7|8|9|10) · (0|1|2|3|4|5|6|7|8|9) : gehele getallen

Referenties

GERELATEERDE DOCUMENTEN

De doelen op het niveau van groep 1 zijn speciaal voor Kleuterplein geformuleerd op een tussenniveau en zijn dus niet terug te vinden in de SLO-documenten. Met uitzondering van

Daarnaast worden er verschillende taaldenkrelaties aangeboden en geoefend (door middel van geleide en open oefeningen).. Iedere week staat een andere taaldenkrelatie centraal

Deze zin is grammaticaal juist, maar hij is onzinnig om twee redenen: (1) hij bevat twee categorie- fouten – abstracte begrippen hebben geen kleur en kunnen niets doen -, en (2)

‰ De vernieuwingen die het bedrijf doorvoert betreffen voornamelijk licht verbeterde producten of processen die nieuw voor het bedrijf zijn, maar die al algemeen bekend kunnen

I Elke programmeur zou reguliere expressies

Maar er zijn nog meer symbolen in de invoer; het volgende symbool van de invoer wordt geïnspecteerd:.

om de aansluitkabel van de netbeheerder te kunnen bevestigen moet er ruimte zijn voor minimaal één trekontlasting/bevestigingsbeugel;2. door netbeheerder te leveren en te plaatsen

Door het breien van een sprei heeft zij een pleister op haar wijsvinger.. Met een pijnlijke grijns verwijdert ze de pleister van