-1

所以我试图从与表中的 SQL 列相关的用户输入中替换下面的字符。

示例:用户创建一个名为 My(first)try 的字段。在 SQL 中,这表现为 Myfirsttry。

我目前正在编写代码来用我们的替换用户输入,但我被卡住了。

到目前为止我有这个。

  itemreplace = itemreplace.Replace("(", "");

然而,这并不能解决问题。想法、意见、建议?

4

2 回答 2

2

我觉得现实世界的情况更复杂,你并没有表明这一点,但要处理你的示例文本My(first)try,你可以链接Replace语句:

itemreplace = itemreplace.Replace("(", "").Replace(")", "");

然而,现实世界的情况似乎更像是利用这样的正则表达式:

^[a-zA-Z0-9_@#][a-zA-Z0-9@$#_]*$

这是一个可以证明这一点的正则表达式 101 。

然后使用它可能看起来像这样:

var valid = Regex.IsMatch("My(first)try", pattern);

我确实参考了这篇文章,T-SQL 列名中允许使用哪些特殊字符?, 以确定列名的允许字符。

于 2013-10-11T19:51:01.453 回答
1

第一个选项:

String itemreplace = new String("My(first)try");
String charsToRemove = new String[] {"(", ")"};
foreach (char c in charsToRemove)
{
    itemreplace = itemreplace.Replace(c, string.Empty);
}

第二种选择:

itemreplace = itemreplace.Replace("(", string.Empty).Replace(")", string.Empty);
于 2013-10-11T19:52:41.907 回答