【发布时间】:2017-11-26 16:17:30
【问题描述】:
我的要求是:
我必须用
string.Empty替换一些特殊字符,如* ' " , _ & # ^ @,我必须用-替换空格。
这是我的代码:
Charseparated = Charseparated
.Replace("*","")
.Replace("'","")
.Replace("&","")
.Replace("@","") ...
要替换这么多字符,我必须使用尽可能多的 Replace,这是我想避免的。
是否有另一种有效的方法来删除特殊字符,但同时用-替换空格?
【问题讨论】:
-
使用正则表达式
-
只是想补充一点,如果这是关于生成有效的文件名,您可以使用Sytem.IO.Path.GetInvalidFileNameChars 获取无效字符集。
-
特别如何?这些不是特殊字符。您是否正在尝试清理文件路径?阅读带有引用文本的 CSV?清理 SQL 输入?每种情况都有更好的替代品,不需要更换
-
StringBuilder.Replace()是String.Replace()的更有效替代方案,如here 所述。不过,您仍然需要多次调用Replace()。 -
你有问题。你用正则表达式解决它。现在你有两个问题。 (对不起,我忍不住:)