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

C# 如何为以下字符串编写正则表达式模式?,c#,regex,string,replace,C#,Regex,String,Replace,我试图编写一个正则表达式模式来修改datagridview的标题。 我需要从每个字符串中删除以下字符: 空间 [ ] * # ? / \ @ ( ) . "" '' 我非常困惑,我需要你的帮助来定义C#中正则表达式的模式。这是我的示例代码: DataTable d_new = d; for (int i = 0; i < d.Columns.Count; i++) { string t = d.Columns[i].Caption; string regex = "\\s+

我试图编写一个正则表达式模式来修改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;
}
DataTable d_new=d;
对于(int i=0;i
这将匹配您想要的内容,只需替换为空字符串或您想要的内容即可

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

但是在这种情况下,正则表达式有点过头了,您可以使用
Remove

这将匹配您想要的内容,只需替换为空字符串或您想要的内容

[ \[\]*#?/\\@()."']
var invalidChars = new HashSet<char>(@"[]*#?/\@()");
var output = new string( input.Where(c => !invalidChars.Contains(c)).ToArray() );
但在这种情况下,正则表达式有点过头了,您可以使用
Remove

var invalidChars=new HashSet(@“[]*.\35;?/\@()”;
var invalidChars = new HashSet<char>(@"[]*#?/\@()");
var output = new string( input.Where(c => !invalidChars.Contains(c)).ToArray() );
var output=新字符串(input.Where(c=>!invalidChars.Contains(c)).ToArray());
var invalidChars=newhashset(@“[]*.\35;?/\@()”);
var output=新字符串(input.Where(c=>!invalidChars.Contains(c)).ToArray());

这应该可以做到:

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

这应该可以做到:

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

你真的需要一个正则表达式吗?为什么不直接使用
Remove
方法?@Andre,对不起,我不知道replace方法,我搜索了internet并找到了Regex,这就是我使用它的原因,我知道它可能效率不高。@Amir如果您只需要从字符串中删除一组给定字符,
Remove
比regex好得多。他没有尝试过,因为这是他的问题,他不知道如何设置regex。请别碰他的案子。你真的需要一个正则表达式吗?为什么不直接使用
Remove
方法?@Andre,对不起,我不知道replace方法,我搜索了internet并找到了Regex,这就是我使用它的原因,我知道它可能效率不高。@Amir如果您只需要从字符串中删除一组给定字符,
Remove
比regex好得多。他没有尝试过,因为这是他的问题,他不知道如何设置regex。请把他的箱子拿开。