Notepad++:: Completely remove lines that contains

2019-06-24 02:36发布

Well, I guess that that is my title is pretty much self explanatory on what I'm about to achieve.

Here is an example of my current text file:

"Diva" was the winning song of the Eurovision Song Contest 1998.
Who will win Eurovision Song Contest 2015?
Eurovision Song Contest Statistics:
Who will win Eurovision 2015?

This is what I want to get:

"Diva" was the winning song of the Eurovision Song Contest 1998.
Eurovision Song Contest Statistics:

So basically each line that contains the ? character (the location doesn't necessarily have to be at the end of the line) will be replaced with nothing.

I have tried [^\r\n]*?[^\r\n]*([\r\n]+|$) but it removes too much.

4条回答
做自己的国王
2楼-- · 2019-06-24 02:46
^[^\n]*\?[^\n]*(?:\n|$)

Try this.Replace by empty string.See demo.

https://regex101.com/r/sJ9gM7/76

查看更多
来,给爷笑一个
3楼-- · 2019-06-24 02:49

You can avoid regular expressions and use the Mark tab of the Find window. Select Search mode as Normal, also select Bookmark line. Set the Find what to be ? and then click Mark all. Next use the menu => Search => Bookmarks => Remove bookmarked lines.

查看更多
The star\"
4楼-- · 2019-06-24 02:54

In order to deal with any linebreak:

Find what: ^.*\?.*(\R|$)
Replace with: <NOTHING>

\R stands for any line break, ie. \r, \n and \r\n

Make sure that Regular Expression is checked and dot matches newline is NOT.

查看更多
混吃等死
5楼-- · 2019-06-24 02:58

You can use [^\r\n]*\?[^\r\n]*([\r\n]+|$) regex to match a line having a ? symbol. Mark . matches newline.

Replace with empty string.

enter image description here

查看更多
登录 后发表回答