记事本++选择性地删除文件中的行



我有一个双.srt文件,如下所示:

1
00:07:14,120 --> 00:07:16,953
[French line]
[Russian line]
2
00:07:16,960 --> 00:07:19,952
[French line]
[Russian line]
3
00:07:21,240 --> 00:07:24,835
[French line]
[Russian line]

我想删除所有的俄罗斯线路(加上相应的CRLF(。这意味着第4行、第9行、第14行、第19行、第24行、第29行等等。从第4行开始,每5行一次。

我猜Notepad++的";在文件中查找";应该能够用正确的RegEx来完成(但我对任何解决方案都持开放态度(。你能帮我一下吗?非常感谢。

以非空行序列中的第n行为目标:

(?:(?:R|A).+){3}KR.+

在regex101上查看此演示(右侧的解释(

  • A匹配字符串的开头
  • R匹配任何换行序列
  • K重置报告匹配的开始
  • .+匹配任意字符中的一个或多个(除了换行符(
  • (?:非捕获组){3}量化三次

点击";替换所有";并替换为空
请确保在替换对话框中取消选中[]点匹配换行符
原子组的一个更有效的替代方案:(?>R?.+){3}KR.+

最新更新