我有如下的条件。
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}带数字的花括号,但没有好处.提前谢谢你的帮助..。
发布于 2021-03-15 11:06:56
您可以使用
^(?:.*?\K//){3}用\\\\代替。见regex在线演示。
详细信息
^ -行的开始(?:.*?\K//){3} -除断行字符之外,出现三个零或多个字符,尽可能少,然后\K (匹配重置操作符)丢弃到目前为止匹配的所有文本,然后//子字符串只保留在匹配值中。请参阅演示和设置屏幕截图:

发布于 2021-03-15 11:14:02
如果只有大写字符A-Z,如示例数据中所示,则可以使用字符类[A-Z]+
^(?:[A-Z]+//){2}[A-Z]+\K//^开始(?:[A-Z]+//){2}重复2次匹配大写字符A和//[A-Z]+\K//匹配1+大写字符A-Z,清除匹配缓冲区和匹配//在替换中使用\\\\
https://stackoverflow.com/questions/66636733
复制相似问题