Notepad ++ Regex:在另一场比赛之后匹配所有出现的地方

Llu*_*ser 2 notepad++ regex

如何在另一场比赛后匹配所有事件?

例如:我想用空格替换所有-之后abc

输入:

one-two-abc-three-four-five
six-seven-abc-eight-nine-ten
...
Run Code Online (Sandbox Code Playgroud)

输出:

one-two-abc three four five
six-seven-abc eight nine ten
...
Run Code Online (Sandbox Code Playgroud)

在 Javascript 中可以使用这个正则表达式:(?<=(.+abc.+))-,但Positive LookbehindNotepad++ 似乎不支持

谢谢。

PS:请随意更正标题。我尽力了,但我不是母语人士。

Tot*_*oto 5

这将适用于字符串中任意数量的连字符。

  • Ctrl+H
  • 找什么: (?:^.*abc|\G[^-\r\n]+)\K-
  • 替换为: #一个空格
  • 检查 火柴盒
  • 检查 环绕
  • 检查 正则表达式
  • 取消勾选 . matches newline
  • Replace all

解释:

(?:             # non capture group
  ^             # beginning of line
    .*          # 0 or more any character but newline
    abc         # literally abc
  |           # OR
    \G          # restart from last match position
    [^-\r\n]+   # 1 or more any character that is not hyphen or line break
)               # end group
\K              # forget all we have seen until this position
-               # hyphen
Run Code Online (Sandbox Code Playgroud)

截图(之前):

在此处输入图片说明

截图(后):

在此处输入图片说明