Voor deze oefening maken we gebruik van het tekstbestand participants.txt1. Dit bestand bevat de startlijst met alle deelnemers voor een racewedstrijd. Als je dit wenst, kan je het bestand vooraf inspecteren met de tekstverwerkers nano, vi of emacs. Elke regel in het bestand is van de volgende vorm:
<team name>:<serial number>:<nationality>:<car type>:<class>
Open het bestand door het commando ed participants.txt uit te voeren. Als je nu een reguliere expressie opgeeft (gevolgd door een druk op de <ENTER> toets) zal de ed tekstverwerker alle regels uit het bronbestand uitschrijven die voldoen aan deze reguliere expressie. Zo zal de reguliere expressie /OPEL de eerste lijn uitschrijven die de tekst OPEL bevat. Om alle lijnen uit te schrijven die die tekst bevatten, kan je de letter g toevoegen voor de reguliere expressie: g/OPEL. Gebruik het commando q om ed af te sluiten.
Stel voor elk van de volgende vragen een reguliere expressie op zodat je het antwoord op de vraag terugvindt.
Wat is het eerste team van wie de naam met een hoofdletter H start?
Wat is het eerste team van de lijst dat deelneemt in klasse C (dus de naam van de klasse moet eindigen op een C)?
Welke teams hebben een chauffeur die Nico heet?
Welke teams hebben een serienummer die groter is dan 99?
Welke teams hebben een serienummer dat eindigt met het cijfer 2 en rijden met een auto van het type OPEL?
Welke teams nemen deel aan klasse G en hebben een chauffeur waarvan de naam (voornaam of familienaam) een koppelteken bevat?
Zorg ervoor dat je reguliere expressies zo eenvoudig mogelijk zijn. Je mag er ook niet vanuit gaan dat de verschillende velden in het bestand een vaste lengte hebben.
Als je een spatie gebruikt in je reguliere expressie, dan moet je steeds de volledige expressie tussen aanhalingstekens (") plaatsen. Als je dit niet doet, dan zal de regex niet correct geƫvalueerd worden.