2

在 Visual Studio 2017 中,我试图将一些行变成这样:

[AddressId] [int] NOT NULL,
[CountryId] [int] NULL,
[POBoxCountryId] [int] NULL,
[Name] [nvarchar] (100) NULL,

进入这个:

[AddressId] int NOT NULL,
[CountryId] int NULL,
[POBoxCountryId] int NULL,
[Name] nvarchar (100) NULL,

在我看来,正则表达式 :(?<=\[\w+\]\s)\[(\w+)\]应该完全匹配第二对括号,并捕获里面的内容。

当我在 RegexStorm 中检查它时,似乎确实是这种情况:regexstorm link

此外,在 Visual Studio 中,如果我执行find,我也可以看到它是正确找到的。显示匹配的行。


但是,如果我尝试进行查找和替换(替换为$1),则不会进行任何替换。(替换正在 regexStorm 中工作)

我究竟做错了什么 ?

4

1 回答 1

3

您可以使用

查找内容(\[\w+]\s+)\[(\w+)]
替换为$1$2

查看正则表达式演示

细节

  • (\[\w+]\s+)- 第 1 组 ( $1): [, 1+ 单词字符]和 1+ 空格
  • \[- 一个[字符
  • (\w+) - 第 2 组 ( $2):1+ 个单词字符
  • ]- 一个]字符。
于 2018-11-02T17:01:10.263 回答