所以我试图从与表中的 SQL 列相关的用户输入中替换下面的字符。
示例:用户创建一个名为 My(first)try 的字段。在 SQL 中,这表现为 Myfirsttry。
我目前正在编写代码来用我们的替换用户输入,但我被卡住了。
到目前为止我有这个。
itemreplace = itemreplace.Replace("(", "");
然而,这并不能解决问题。想法、意见、建议?
我觉得现实世界的情况更复杂,你并没有表明这一点,但要处理你的示例文本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 列名中允许使用哪些特殊字符?, 以确定列名的允许字符。
第一个选项:
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);