用一个衬里替换c#中字符串中的多个字符

时间:2013-07-30 08:01:19

标签: c# .net replace

我想知道的是,是否可以替换字符串中的多个字符(例如,&,|和$字符),而不必多次使用.Replace()?目前我正在使用它作为

return inputData.Replace('$', ' ').Replace('|', ' ').Replace('&', ' ');

但这太可怕了,我想知道是否有类似的小而有效的替代方案。

编辑:谢谢大家的答案,遗憾的是我没有提升人们所需的15个声誉

4 个答案:

答案 0 :(得分:37)

您可以使用Regex.Replace

string output = Regex.Replace(input, "[$|&]", " ");

答案 1 :(得分:6)

您可以使用Split功能和String.Join下一步:

String.Join(" ", abc.Split('&', '|', '$'))

测试代码:

static void Main(string[] args)
{
     String abc = "asdfj$asdfj$sdfjn&sfnjdf|jnsdf|";
     Console.WriteLine(String.Join(" ", abc.Split('&', '|', '$')));
}

答案 2 :(得分:1)

可以使用Regex,但如果您因某种原因而无法避免,请使用以下静态扩展名:

public static string ReplaceMultiple(this string target, string samples, char replaceWith) {
    if (string.IsNullOrEmpty(target) || string.IsNullOrEmpty(samples))
        return target;
    var tar = target.ToCharArray();
    for (var i = 0; i < tar.Length; i++) {
        for (var j = 0; j < samples.Length; j++) {
            if (tar[i] == samples[j]) {
                tar[i] = replaceWith;
                break;
            }
        }
    }
    return new string(tar);
}

<强>用法:

var target = "abc123abc123";
var replaced = target.ReplaceMultiple("ab2", 'x');
//replaced will result: "xxc1x3xxc1x3"

答案 3 :(得分:0)

怎么样:

return Regex.Replace(inputData, "[\$\|\&]", " ");