2 juli 2012

GREPje tussen haakjes

.
Praktijkvraag:
iemand wil alles vinden dat tussen haakjes staat waarin nummers staan zoals (12) maar ook (12-13) en (16 de 18). 'Gewone' tekst tussen haakjes moet met rust gelaten worden. Wat we wel weten is dat er altijd als eerste een cijfer staat.
De haakjes moeten verdwijnen en de gevonden tekst moet superscript worden.


We kunnen dan zoeken naar d+ maar als er een ander karakter in staat dan een cijfer vinden we die weer niet...


Dit was de oplossing:



(?x) (\() (\d+[^\)]+) (\))

(?x) is alleen voor de handigheid, geeft aan dat we spaties mogen gebruiken tussen de uitdrukkingen voor duidelijker lezen
(\() geeft aan dat we zoeken naar openingshaakje
(\d+[^\)]+)  geeft aan dat we een cijfer zoeken, een willekeurig teken BEHALVE het sluithaakje zelf als willekeurig teken
(\)) geeft aan dat we het sluithaakje zoeken



Als er alleen tekst tussen de haakjes staat of de tekst niet begint met een cijfer dan wordt de tekst niet gevonden.


Bij Vervangen geven we op:


$2


en we koppelen hier de opmaak superscript aan: de haakjes verdwijnen en alleen hetgeen tussen de haakjes wordt teruggezet met de stijl superscript











2 opmerkingen:

Wim Ruberg zei

Mooie GREP Frans!
Maar ben je de cijfergrep \d in het zoekveld van het zoek&vervang palet niet vergeten? ;-)

F vd Geest DTP & Graphic Design zei

Ah ja, verkeerde screenshot haha! Gecorrigeerd, dank Wim.