【问题标题】:Removing specific special characters from a string从字符串中删除特定的特殊字符
【发布时间】:2011-09-14 07:53:40
【问题描述】:

我想使用正则表达式从字符串中删除空格('')、点('.')和连字符(-)。

我目前的做法:

string input = "hello     how --r dsbadb...dasjidhdsa.dasbhdgsa--dasb";          
var res = input
     .ToCharArray()
     .Where(i => i != ' ' && i != '-' && i != '.')
     .Aggregate(" ", (a, b) => a + b);

【问题讨论】:

    标签: c# .net regex replace


    【解决方案1】:
    string filteredInput = Regex.Replace(input, "[ .-]+", "");
    

    应该更容易阅读。

    【讨论】:

    • 尝试input = Regex.Replace ..(etc) - 它创建一个新字符串而不是“就地”更改它
    • 我建议你使用[ .-]+ 这样相邻的字符会被立即替换。
    【解决方案2】:
    var result = string.Concat(input.Where(c => !new[] { '.', ' ', '-' }.Contains(c)));
    

    【讨论】:

    • @Joey,提供带有例外的样本。
    • @Joey,除了输出将是helowrdsbajigvf。测试你的代码。
    【解决方案3】:
    string result = Regex.Replace(input, "[\s\.-]+", "");
    

    \s 以空格为目标,\. 以点为目标,- 以连字符为目标并将其替换为空字符串

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 2016-01-23
      • 2019-11-09
      • 2011-08-29
      • 1970-01-01
      相关资源
      最近更新 更多