2013-02-25 21 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