2013-02-25 49 views
2

用正則表達式我想通過匹配'CONSTRAINT ...())'並用'\ * CONSTRAINT ...())*'替換它。操作員。 *在記事本++中匹配整個文檔,所以我不能使用它。正則表達式 - 註釋掉sql約束

我想的是類似以下內容然而需要進行一些修改:

CONSTRAINT[\w\s]*\)\) 

輸入:

modified_date datetime NULL, 
    etl_id int NULL, 
    etl_date smalldatetime NULL, 
CONSTRAINT PK_WORK PRIMARY KEY CLUSTERED 
(
    work_id ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
) 

感謝

+1

不要忘了'''在之前CONSTRAINT'關鍵字。 – 2013-02-25 09:58:54

+0

這對於正則表達式來說幾乎是不可能完成的任務,請檢查[this](http://stackoverflow.com/questions/546433/regular-expression-to-match-outer-brackets) – HamZa 2013-02-25 10:06:45

回答

0

你需要讓你的正則表達式非貪婪:

CONSTRAINT\([^)]+\)\) 
1

我會做:

搜索:(,\s*CONSTRAINT.+?\)\s+\))
通過更換:/*$1*/

我還沒有記事本+ +中英文版本,但我認爲標籤確定。

驗證regex被選中,也. includes \n

+0

謝謝!區別.. – martez 2013-03-04 15:14:41