我正在尝试编写一个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;
}
答案 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 = "[\[\]*#?\/\\@()."']";