【问题标题】:Removing Unwanted Characters删除不需要的字符
【发布时间】:2013-01-27 08:31:21
【问题描述】:

我正在尝试使用另一个列表来清理项目列表,它工作正常,除了它没有忽略大小写。当我尝试添加序数或正则表达式大小写检查时,出现语法错误。有人可以告诉我我做错了什么吗?这是我的代码:

List<string> removeChars = new List<string>(textBox_ScrubList.Text.Split(','));
            for (int i = 0; i < sortBox1.Count; i++)
                foreach (string repl in removeChars)
                    sortBox1[i] = sortBox1[i].Replace(repl, "", RegexOptions.IgnoreCase);

这是我得到的语法错误:

【问题讨论】:

  • 这只是我正在清理的原始列表。
  • List&lt;String&gt; 还是别的什么?确切的错误信息是什么?我根据部分信息对答案做出了有根据的猜测,但也请阅读tinyurl.com/so-list
  • 如果你自己想通了,你应该回答你自己的问题。

标签: c# regex casing


【解决方案1】:

假设sortBox1List&lt;string&gt; 或类似的,问题是String.Replace 没有任何需要RegexOptions 的重载。

您可以使用Regex.Replace,但在这种情况下,您应该能够构造一个单个 正则表达式来一次性删除所有字符。如果您确实想一次删除一个,您可能需要使用Regex.Escape 来避免正则表达式模式成为问题。 (例如,如果它试图用“”替换“.”,你最终会摆脱一切。)

【讨论】:

    【解决方案2】:

    所以我想通了。最后一行:

     sortBox1[i] = sortBox1[i].Replace(repl, "", RegexOptions.IgnoreCase);
    

    必须改为:

     sortBox1[i] = Regex.Replace(sortBox1[i], repl, "", RegexOptions.IgnoreCase);
    

    【讨论】:

      猜你喜欢
      • 2016-10-27
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      相关资源
      最近更新 更多