If you are speaking of space before a colon, I think this will work. (Not that there is a space at the beginning of this expression)
This will find either a regular space followed by a colon, or a letter character followed by a colon, and replace them with a non-breaking space followed by a colon.
If you have sentences with a digit directly before the colon, an additional part would need to be added.
Thank you SRiegel for the answer!
The problem is that this grep you suggest does not find if the space is allready present.
I'm not good with greps.
For that reason I'm looking for some scripts, cause I need also to change " with « and add the "~S" before other double punctuation... is not that simple! The big problem is that in more than 80 pages, I have 50% of text with the correct space and the other 50% with only few correct spaces.
OMG Thank you so much jmlevy!!! It works like a charm!!
Now I just need to add to that txt the grep to find all the " and change them to «!