1

我正在使用这个正则表达式来查找所有出现的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在线尝试时,它可以工作。

4

3 回答 3

2

试试这个:

:b+INT:b+IDENTITY:b+(1,:b*1):b+NOT:b+NULL
于 2012-06-25T18:13:28.483 回答
2

Visual Studio 有自己特定的正则表达式风格 - 例如没有\b(我认为是单词边界),所以使用它是行不通的。

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

于 2012-06-25T18:08:19.743 回答
1

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

INT:b+IDENTITY:b+\(1,:b*1\):b+NOT:bNULL
于 2012-06-26T13:48:34.273 回答