我试图用一个单独的空间替换所有"非字母数字字符"和"多个空格"
我有2个工作解决方案,但我想知道它是否有可能有效地结合它们?
特定
var str = "ASD S-DF 2134 4@# 4 234234 #$)(u SD";
var options = RegexOptions.None;
Run Code Online (Sandbox Code Playgroud)
非字母数字字符的解决方案
var rgxAlpha = new Regex("[^a-zA-Z0-9]");
str = rgxAlpha.Replace(str, " ", options);
Run Code Online (Sandbox Code Playgroud)
多个空间的解决方案
var regexSpace = new Regex(@"[ ]{2,}", options);
str = regexSpace.Replace(str, " ");
Run Code Online (Sandbox Code Playgroud)
预期结果
ASD S DF 2134 4 4 234234 u SD
Run Code Online (Sandbox Code Playgroud)
只是下面就足够了,因为[^a-zA-Z0-9]+匹配也是空格,你不需要[ ]{2,}明确添加.
string result = Regex.Replace(str, @"[^a-zA-Z0-9]+", " ");
Run Code Online (Sandbox Code Playgroud)