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

上記の特定の文字列に対する1回限りの方法を除いて、正規表現は十分ではありません。多くの SQL 行で自動化された方法でこれを行っている場合、必要な括弧を削除するのに大きな問題が発生する可能性があります。

その場合、列名のみに焦点を当て、テーブル名、文字列、トリガーまたは関数のパラメーターなどを除外するのに役立つSQLレクサー/パーサーがさらに必要です...

于 2009-02-06T17:37:43.250 に答える