Notepad ++ Rexex删除字符之间未知的多个空格

时间:2017-03-17 14:13:10

标签: regex notepad++

虽然我不是专家,但我可以以某种方式删除字符之间已知的空格,例如。

Something: INITIALIZATION OF
Something: PROPERTY PMISTATE
Something: 12 23

查找:

^(.*)([a-z0-9]+)\s([a-z0-9]+)

替换:

\1\2 \3\n\1\2\3\n

结果:

Something: INITIALIZATION OF
Something: INITIALIZATIONOF

Something: PROPERTY PMISTATE
Something: PROPERTYPMISTATE

Something: 12 23
Something: 1223

但是,如果外表或没有,我也不知道如何做同样的事情。例如,空间不是已知的 我想替换这些词

Something: INITIALIZATION OF
Something: PROPERTY PMISTATE PMISTATE
Something: 12 23 23 .GET()

如下:

Something: INITIALIZATION OF
Something: INITIALIZATIONOF

Something: PROPERTY PMISTATE PMISTATE
Something: PROPERTYPMISTATEPMISTATE

Something: 12 23 .GET()
Something: 1223.GET()

1 个答案:

答案 0 :(得分:0)

您需要先复制这些行:

查找内容^Something:.*$
替换为$&\r\n$&

点击全部替换

然后,使用

查找内容(?:\G(?!^)|^(Something:.*)\R(?=\1$)Something:\h*)\S*\K\h+
替换为:空字符串(留空)

<强>详情:

  • (?:\G(?!^)|^(Something:.*)\R(?=\1$)Something:\h*) - 匹配上一个成功匹配的结尾或以Something:开头的行到换行符,以及下一行(带有起始词Something:)等于前一行,然后是<+ li>之后的0+水平空白符号
  • \S* - 零个或多个非空白字符
  • \K - 匹配重置运算符,丢弃目前为止匹配的所有文本
  • \h+ - 一个或多个水平空格

enter image description here