Notepad++ 用不同的字符替换两点之间的文本?

Notepad++ 用不同的字符替换两点之间的文本?

我有这样的文字:

D5 0.25 8;0.25 E5 0.25 8;0.5 F#5 1 8;1.5 E5 1 8;2.5 D5 1 8;3.5 B4 1 8;4.5 A4

只不过,它有 800 个字符长...例如,我想获取 D5 和 E5 之间的文本,并将其替换为一个空格。所以它看起来像这个 D5 E5,但正如我所说,每个值都不同。

答案1

只要“D5”和“E5”不出现在块内,您就可以使用正则表达式:

搜索:D5.*?E5
替换为:D5 E5

记得启用正则表达式搜索模式

答案2

鉴于我将其识别为 MIDI 数据,我假设您想要删除除其音符之外的所有 midi 数据(以空格分隔)。

您将需要使用以下正则表达式模式:

搜索([A-Z]#*.).+?;.+? (注意末尾的空格。我使用了 ALT+255,因为否则 SuperUser 会将其删除。)
并替换:(\1 还要注意末尾的空格,还有 ALT+255。)

它将进行除最后一个音符之外的所有替换,除非末尾也有空格。

正则表达式解释:

(                - Start Capture group
  [A-Z]          - Search for any char between A and Z, exactly 1 time
  #*             - Search for a # 0 or more times
  .              - Search for any character exactly 1 time.
)                - End capture group
                 ------------------
                 The above search will result in the midi note, eg A3 and store it in \1

.+?              - Continue to search for any character 1 or more times in non-greedy way.
;                - Search until we find the first ;
.+?              - Search for any character 1 or more times in non-greedy way.
                 - search until we find a space.

相关内容