在C#中使用正则表达式删除括号

时间:2009-02-06 17:30:23

标签: c# regex string replace

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

E.g。 “SELECT [intId],[Description]”应返回“SELECT intId,[Description]”。

我可以使用正则表达式获取方括号内部没有空格:

\[[^\s]*\]

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

2 个答案:

答案 0 :(得分:6)

sql = Regex.Replace(sql, "\\[([^\\s]*)\\]", "$1");

答案 1 :(得分:3)

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

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