我想从SQL字符串中删除方括号,但仅限于其中没有空格的位置。
E.g。 “SELECT [intId],[Description]”应返回“SELECT intId,[Description]”。
我可以使用正则表达式获取方括号内部没有空格:
\[[^\s]*\]
如何在原始字符串中删除这些匹配项中的方括号?
答案 0 :(得分:6)
sql = Regex.Replace(sql, "\\[([^\\s]*)\\]", "$1");
答案 1 :(得分:3)
正则表达式是不够的,除了上述特定字符串的一次性方式。如果您通过许多SQL行以自动方式执行此操作,则可能会在删除所需的括号时遇到麻烦。
在这种情况下,你需要更多的SQL词法分析器/解析器,它可以帮助你只关注列名,并排除表名,字符串,触发器或函数中的参数等......