In the GREP tab of the Find/Change dialog, set this:
Find what: \w\K\.(?=\w)
Change to: -
\w stands for a word character (letters, digits, and the underscore character)
\K means 'match but don't capture what's specified before \K'
\. is the period
(?=\w) stands for match but don't capture \ aord character.
The grep expression in effect highlights dots when they're preceded and followed by a word character. Replace with a hyphen where appropriate. Click Change All when you're confident that you'll change all and only those that need changing.
If we have: email@example.com …
Peter, you're right! about: "Click Change All when you're confident that you'll change all and only those that need changing."
To work quickly, I'll begin with your regex [all we've found includes what we search!] and replace "by format: condition 'Found'". Then I'll reduce the scope of action as and when our certainties marking the occurrences found with "no condition". At each research I imagine (by reading each already found occurrence), I'll mark the results found with "no condition". At the end, all we'll get ["Found" condition] are right and enough!
Fantastic help from both thank you very much indeed. and such a great explanation of the meaning.