Notepad++ 正则表达式如何替换第三次出现的斜线并绕过第一条和第二条?

Notepad++ regex How to Replace third occurrence of slash & bypass the first and seconds?

我有如下字符串。
ABC//DEG//IJK//LMN//OPQ//rstuvwxyz
BCA//EGD//JKI//MNL//PQO//stuvwxyzr
ACB//DGE//IJK//LNM//OQP//rstuvwxyz
ABC//DEG//IJK//LMN//OPQ//rstuvwxyz
CAB//GDE//KIJ//NLM//QOP//rstuvwxyz
BAC//EDG//JIK//MLN//POQ//rstuvwxyz

我想要这样,

ABC//DEG//IJK\LMN//OPQ//rstuvwxyz
BCA//EGD//JKI\MNL//PQO//stuvwxyzr
ACB//DGE//IJK\LNM//OQP//rstuvwxyz
ABC//DEG//IJK\LMN//OPQ//rstuvwxyz
CAB//GDE//KIJ\NLM//QOP//rstuvwxyz
BAC//EDG//JIK\MLN//POQ//rstuvwxyz

我试过了
找到什么 ^.+?\K//
替换为:\\
但这只会改变第一次出现的斜线,
我试过了,
查找内容:^.+\K//
替换为:\\
这将替换每行末尾的最后一个斜杠 ..
我也尝试了 {3} 大括号和数字,但没有任何好处.... 在此先感谢您的帮助....

您可以使用

^(?:.*?\K//){3}

替换为\\。见 regex demo online.

详情:

  • ^ - 行首
  • (?:.*?\K//){3} - 除换行字符外的任何零个或多个字符出现三次,尽可能少,然后 \K(匹配重置运算符)丢弃到目前为止匹配的所有文本,然后//子字符串只保留在匹配值中。

查看演示和设置截图:

如果示例数据中只有大写字符 A-Z,则可以使用字符 class [A-Z]+

^(?:[A-Z]+//){2}[A-Z]+\K//
  • ^ 字符串开头
  • (?:[A-Z]+//){2} 重复 2 次匹配大写字符 A-Z 和 //
  • [A-Z]+\K// 匹配 1+ 个大写字符 A-Z,清除匹配缓冲区并匹配 //

Regex demo

在替换中使用\\