8 maart 2008

GREP: telefoonnummers opmaken


Een tekst met telefoonnummers? En alle telefoonnummers moeten in hangende OpenType cijfers met een half kastlijntje ('en-streepje') na het kengetal?

Stel je hebt verschillende soorten 'formuleringen' in de tekst:
071 5224410
071/5224410
071-5224410
0715224410

Alles moet naar kengetal, en-streepje, lokaal nummer en in hangende cijfers.
Zoek in GREP naar:
[0-9]{3}.?[0-9]{7}

Dit betekent: zoek een reeks cijfers van drie getallen [0-9]{3} dan elk teken .? (maar hoeft niet, wanneer de getallen aan elkaar zijn geschreven, vandaar het vraagteken!) dan een reeks van 7 tekens [0-9]{7}.

Maar de eerste reeks cijfers en de laatste reeks cijfers moeten weer worden teruggeplaatst. We zetten ze daarom tussen haakjes:

([0-9]{3}).?([0-9]{7})

Bij wijzigen vul je in:

$1~=$2

Dit zet de eerste drie gevonden getallen terug $1, plaatst dan een half kastlijntje, ~= en dan de gevonden zeven cijfers terug $2.
Geef bij Opmaak op dat je OpenType hangende cijfers wilt gebruiken (proportioneel medieval)

Voor 06 nummers zou de GREP zoekstring worden:
([0-9]{2}).?([0-9]{8})

LET OP: Je kunt ook de zoekstring als volgt opgeven:
(\d{3}).?(\d{7})
Dit vindt precies hetzelfde, het is alleen nog korter geformuleerd.

Een telefoonsymbool voor elk nummer plaatsen? Maak een geneste stijl waarvan het eerste teken een tekenstijl Zapf Dingbats OT krijgt. Zoek dan de telefoonnummers. Plaats nu het Zapf symbool, een spatie en dan telefoonnummer terug. Zorg dat je bij Wijzigen in dan je geneste stijl hebt gekozen.
Geef nu dit op als string bij Wijzigen in:

\x{2706} $1~=$2

\x betekent handhaaf Unicode, {2706} is de Unicode voor het telefoonsymbool in Zapf Dingbats OpenType