Итак, я не уверен, какой язык / технологию вы хотели бы использовать здесь, но если вы хотите использовать C #, вы можете проверить этот предыдущий вопрос .Ответ дает вам почти все.
Для вашего примера:
var text = @"{\s39\li0\fi0\ri0\sb0\sa0\ql\vertalt\fs22 Fußzeile Zchn;}";
var pattern = @"^({\\s\S*\s[a-zA-Z0-9_\{}; ]*)([^a-zA-Z0-9_\{}; ]*)([^}]*})";
var replaced = System.Text.RegularExpressions.Regex.Replace(text, pattern, "$1$3");
Это позволит вам заменить один непрерывный блок плохих символов, который относится к вашему примеру, но, к сожалению, нетваш вопрос.Возможно, есть более элегантное решение, но я думаю, что вам придется многократно запускать это выражение до тех пор, пока входные и выходные данные Regex.Replace () не будут равны.