删除包含特定单词的行以及Notepad ++中的上一行

时间:2019-06-21 22:56:41

标签: regex notepad++

我想获得删除包含字符串/movie/和上一行的每一行的代码(/包含在/movie/中)。

示例:

在代码之前:

#EXTINF:-1,Wreck-It Ralph
http://p5.giffy.be:8080/movie/RghyHCIE4i/SDrQatrZkx/104880.mp4
#EXTINF:-1,Wrinkle-Free
http://p5.giffy.be:8080/movie/RghyHCIE4i/SDrQatrZkx/105060.mp4
#EXTINF:-1,DR | TELEMICRO 5
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99633
#EXTINF:-1,Wrong Mistake - Short Movie
http://p5.giffy.be:8080/movie/RghyHCIE4i/SDrQatrZkx/106840.mp4
#EXTINF:-1,DR | TELESISTEMA 11
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99632
#EXTINF:-1,Wreck-It
http://p5.giffy.be:8080/movie/RghyHCIE4i/SDrQatrZkx/104707.mp4
#EXTINF:-1,DR | TELEUNIVERSO
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99631

代码后:

#EXTINF:-1,DR | TELEMICRO 5
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99633
#EXTINF:-1,DR | TELESISTEMA 11
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99632
#EXTINF:-1,DR | TELEUNIVERSO
http://p5.giffy.be:8080/RghyHCIE4i/SDrQatrZkx/99631

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

^.*?\r\n.*?\/movie\/.*?(\r\n|$)

分步操作:

  1. 打开查找并替换为 Ctrl + h
  2. Alt + f 专注于查找内容。
  3. 输入上面的正则表达式。
  4. Alt + g 启用正则表达式模式。确保“。匹配换行符”已关闭。
  5. Alt + a 替换全部。

工作原理:

^  # anchor to beginning of line 
 .*?  # lazily match zero or more characters
    \r\n  # match carriage return and line feed
        .*?  # lazily match zero or more characters
           \/movie\/  # match literal /movie/
                    .*?  # lazily match zero or more characters
                       (\r\n|$)  # match carriage return and line feed or EOL

答案 1 :(得分:1)

另一种选择是匹配第一行并匹配unicode换行符序列\R。然后将第二行与/movie/匹配,最后将\R

匹配

查找内容:

^.*\R.*/movie/.*\R

这将匹配

  • ^字符串的开头
  • .*匹配除换行符之外的任意字符0+次
  • \R匹配unicode换行符序列
  • .*/movie/.*匹配字符串中的/movie/
  • \R匹配unicode换行符序列

替换为:

留空

Regex demo