[英]Remove brackets with regular expression in C#
我想從SQL字符串中刪除方括號,但僅限於其中沒有空格的位置。
例如“SELECT [intId],[Description]”應返回“SELECT intId,[Description]”。
我可以使用正則表達式獲取方括號內部沒有空格:
\[[^\s]*\]
如何從原始字符串中刪除這些匹配的方括號?
sql = Regex.Replace(sql, "\\[([^\\s]*)\\]", "$1");
正則表達式是不夠的,除了在上面的特定字符串上只有一次性。 如果您通過許多SQL行以自動方式執行此操作,則可能會在刪除所需的括號時遇到麻煩。
在這種情況下,您需要更多的SQL詞法分析器/解析器,它可以幫助您只關注列名稱,並排除表名,字符串,觸發器或函數中的參數等...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.