Delete all lines starting with # or ; in Notepad++

RegexNotepad++

Regex Problem Overview


Using Notepad++, how do I remove all lines starting with # or ;?

Regex Solutions


Solution 1 - Regex

Find:

^[#;].*

Replace with nothing. The ^ indicates the start of a line, the [#;] is a character class to match either # or ;, and .* matches anything else in the line.

In versions of Notepad++ before 6.0, you won't be able to actually remove the lines due to a limitation in its regex engine; the replacement results in blank lines for each line matched. In other words, this:

foo

; bar statement;

Will turn into:

statement;

However, the replacement will work in Notepad++ 6.0 if you add \r, \n or \r\n to the end of the pattern, depending on which line ending your file is using, resulting in:

statement;

Solution 2 - Regex

As others have noted, in Notepad++ 6.0 and later, it is possible to use the "Replace" feature to delete all lines that begin with ";" or "#".

Tao provides a regular expression that serves as a starting point, but it does not account for white-space that may exist before the ";" or "#" character on a given line. For example, lines that begin with ";" or "#" but are "tabbed-in" will not be deleted when using Tao's regular expression, ^(#|;).*\r\n.

Tao's regular expression does not account for the caveat mentioned in BoltClock's answer, either: variances in newline characters across systems.

An improvement is to use ^(\s)*(#|;).*(\r\n|\r|\n)?, which accounts for leading white-space and the newline character variances. Also, the trailing ? handles cases in which the last line of the file begins with # or ;, but does not end with a newline.

For the curious, it is possible to discern which type of newline character is used in a given document (and more than one type may be used): View -> Show Symbol -> Show End of Line.

Solution 3 - Regex

Its possible, but not directly.

In short, go to the search, use your regex, check "mark line" and click "Find all". It results in bookmarks for all those lines.

In the search menu there is a point "delete bookmarked lines" voila.

I found the answer here (the correct answer is the second one, not the accepted!): https://stackoverflow.com/questions/918158/how-to-delete-specific-lines-on-notepad

Solution 4 - Regex

Maybe you should try

^[#;].*$

^ matches the beggining, $ the end.

Solution 5 - Regex

In Notepad++, you can use the Mark tab in the Find dialogue to Bookmark all lines matching your query which can be regex or normal (wildcard).

Then use Search > Bookmark > Remove Bookmarked Lines.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionWasim A.View Question on Stackoverflow
Solution 1 - RegexBoltClockView Answer on Stackoverflow
Solution 2 - RegexBen JohnsonView Answer on Stackoverflow
Solution 3 - RegexstemaView Answer on Stackoverflow
Solution 4 - RegexLundbergView Answer on Stackoverflow
Solution 5 - RegexNialFView Answer on Stackoverflow