diff --git a/safe/converter.py b/safe/converter.py index 7611168..61ee7a9 100644 --- a/safe/converter.py +++ b/safe/converter.py @@ -332,7 +332,9 @@ def encoder( val = str(starting_num) if starting_num < 10 else f"%{starting_num}" # we cannot have anything of the form "\([@=-#-$/\]*\d+\)" attach_regexp = re.compile(r"(" + re.escape(attach) + r")") - scaffold_str = attach_regexp.sub(val, scaffold_str) + # check if we have at least 2 matches, if not, we have a dummy + n_matches= len(attach_regexp.findall(scaffold_str)) + scaffold_str = attach_regexp.sub(val, scaffold_str) if n_matches > 1 else scaffold_str.replace(attach, "*") starting_num += 1 # now we need to remove all the parenthesis around digit only number wrong_attach = re.compile(r"\(([\%\d]*)\)")