0

我正在尝试编写一个正则表达式模式来修改我的 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;
}
4

3 回答 3

3
var invalidChars = new HashSet<char>(@"[]*#?/\@()");
var output = new string( input.Where(c => !invalidChars.Contains(c)).ToArray() );
于 2012-08-24T18:19:24.647 回答
1

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

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

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

于 2012-08-24T18:16:39.317 回答
1

这应该可以解决问题:

 string regex = "[\[\]*#?\/\\@()."']";
于 2012-08-24T18:23:59.697 回答