How do I use GREP to find and replace all hyphens between numbers in an InDesign document?

How do I use GREP to find and replace all hyphens between numbers in an InDesign document?

Problem Description:

I am working on a multi-language book, and I need to find and replace all hyphens with en-dashes that occur between numbers in the citations section. I need to avoid all hyphens that exist between roman letters.

If I use a GREP [0-9]-[0-9] it selects the numbers before and after the hyphen and I have to manually select the hyphen and replace it with an en-dash. This is labor intensive.

Is there a way for me to find the hyphen that exists between the numbers, but EXCLUDE the numbers themselves from being highlighted? This way I can run a the Find and Replace to change what will probably be 1000+ manual changes?

I tried using GREP [0-9]-[0-9] to find the hyphens, but then couldn’t find a way to have the find and replace keep the existing numbers.

Solution – 1

That’s what lookaheads and lookbehinds are for`

(?<=[0-9])-(?=[0-9])

Solution – 2

If you have selected GREP, another way could be to use 2 capture groups and use those 2 groups in the replacement with an en-dash in between.

([0-9])-([0-9])

Replace with $1–$2

Rate this post
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept
Reject