记事本++正则表达式查找并替换括号之间的空格

tho*_*der 3 regex notepad++

在记事本++中,想改变这个:

    [City tier] [nvarchar](max) NULL,
    [Counting unit] [nvarchar](max) NULL,
Run Code Online (Sandbox Code Playgroud)

对此:

    [City_tier] [nvarchar](max) NULL,
    [Counting_unit] [nvarchar](max) NULL,
Run Code Online (Sandbox Code Playgroud)

我已经使用 [\w+(\s)\w+] 来定位这两条记录,但是当我使用 \1_ 替换时,我得到了

     _ [nvarchar](max) NULL,
     _ [nvarchar](max) NULL,
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

您可以使用此 PCRE 正则表达式进行搜索:

((?:\[|(?!^)\G)[^]\s]*)\s
Run Code Online (Sandbox Code Playgroud)

并替换为:

$1_
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

正则表达式详情:

  • (:开始捕获组#1
    • (?:: 启动非捕获组
      • \[: 匹配一个 [
      • |: 或者
      • (?!^)\G: 从上一场比赛的结尾重新开始匹配
    • ): 结束非捕获组
    • [^]\s]*: 匹配 0 个或多个非空格和非空格字符 ]
  • ):结束捕获组#1
  • \s: 匹配一个空格