Visual Studio中使用正则表达式语法的困难

时间:2012-06-25 17:58:42

标签: regex visual-studio-2010

我正在使用此正则表达式查找所有INT IDENTITY (1, 1) NOT NULL

\bINT\s*IDENTITY\s*\(1,\s*1\)\s*NOT\s*NULL\b

它在整个上下文中的位置示例如下:

CREATE TABLE table1 (
    [col]                INT      IDENTITY (1, 1) NOT NULL,
    [col2]               INT      NOT NULL,
    [col3]               BIT      NOT NULL,
    [col4]               BIT      NOT NULL,
    [col5]               DATETIME NOT NULL,
    PRIMARY KEY CLUSTERED ([col] ASC) WITH (FILLFACTOR = 90, ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF)
);

但上面的正则表达式找不到任何东西。当我使用Rubular,Gskinner或Regex Hero在线试用时,它可以正常使用。

3 个答案:

答案 0 :(得分:2)

Visual Studio有自己特定的正则表达式 - 例如没有\b(对于单词边界,我推测),因此使用它将无效。

我建议您阅读正则表达式(Visual Studio)2010 / 2012以获取语法。

答案 1 :(得分:2)

试试这个:

:b+INT:b+IDENTITY:b+(1,:b*1):b+NOT:b+NULL

答案 2 :(得分:1)

我最终使用了以下表达式:

INT:b+IDENTITY:b+\(1,:b*1\):b+NOT:bNULL