4

我想从 SQL 字符串中删除方括号,但仅限于其中没有空格的地方。

例如,“SELECT [intId], [The Description]”应该返回“SELECT intId, [The Description]”。

我可以使用正则表达式得到没有空格的方括号:

\[[^\s]*\]

如何从这些匹配项中删除原始字符串中的方括号?

4

2 回答 2

6
sql = Regex.Replace(sql, "\\[([^\\s]*)\\]", "$1");
于 2009-02-06T17:33:37.203 回答
3

正则表达式是不够的,除了在您的上述特定字符串上一次性使用。如果您在许多 SQL 行上以自动方式执行此操作,则可能会在删除所需的括号时遇到一堆麻烦。

在这种情况下,您需要更多的 SQL 词法分析器/解析器,它可以帮助您只关注列名,而排除表名、字符串、触发器或函数中的参数等......

于 2009-02-06T17:37:43.250 回答