如何为以下字符串编写正则表达式模式?

时间:2012-08-24 18:11:48

标签: c# regex string replace

我正在尝试编写一个Regex模式来修改datagridview的标题。 我需要从每个字符串中删除以下字符: 空间 [ ] * # ? / \ @ ( ) 。 “” “” 我非常困惑,我需要你的帮助来定义C#中正则表达式的模式。这是我的示例代码:

DataTable d_new = d;
for (int i = 0; i < d.Columns.Count; i++)
{
    string t = d.Columns[i].Caption;
    string regex = "\\s+"; // this needs to Be expanded
    string t_new = Regex.Replace(t, regex, "_");
    d.Columns[i].Caption = t_new;
}

3 个答案:

答案 0 :(得分:3)

var invalidChars = new HashSet<char>(@"[]*#?/\@()");
var output = new string( input.Where(c => !invalidChars.Contains(c)).ToArray() );

答案 1 :(得分:1)

这会匹配你想要的东西,只需用空字符串或你想要的东西替换。

[ \[\]*#?/\\@()."']

但在这种情况下,正则表达式有点矫枉过正,你可以使用Remove

答案 2 :(得分:1)

这应该可以解决问题:

 string regex = "[\[\]*#?\/\\@()."']";