如何替换字符串中的所有无效字符?

How to replace all non-valid characters in string?

我将如何替换字符串中不是以下内容的每个字符: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.@-

-

例如,名称 Danny D'vito 将变为 DannyD-vito

我最初的想法是将字符串转换为 char[] 并循环检查每个字符,然后再转换回字符串。但我的直觉告诉我必须有更简单的方法来做到这一点

Regex.Replace()接近

string input = "Danny D'vito";
string result = new Regex("[^a-zA-Z0-9_.@-]").Replace(input, "-");