@jbacelar
Thanks very much.

This code is working very well for
one punctuation sign. I tried to make it work for a second one but I probably did something wrong because it failed. I have been told indentation is tricky but between theory and practice...
So, I tried this... No
Code:
def replace (match, number, file_name, metadata, dictionaries, data, functions, * args, ** kwargs):
return match.group().replace ("!","@!")
def replace (match, number, file_name, metadata, dictionaries, data, functions, * args, ** kwargs):
return match.group().replace ("?","@?")
Should I create several functions like your own or is there a way to concatenate several of them in a single one (or even better group several punctuation signs replacement in the same command)?