How to check if a line is blank using regex

ID : 20353

viewed : 16

Tags : regexregex

Top 5 Answer for How to check if a line is blank using regex

vote vote

91

The pattern you want is something like this in multiline mode:

^\s*$ 

Explanation:

  • ^ is the beginning of string anchor.
  • $ is the end of string anchor.
  • \s is the whitespace character class.
  • * is zero-or-more repetition of.

In multiline mode, ^ and $ also match the beginning and end of the line.

References:


A non-regex alternative:

You can also check if a given string line is "blank" (i.e. containing only whitespaces) by trim()-ing it, then checking if the resulting string isEmpty().

In Java, this would be something like this:

if (line.trim().isEmpty()) {     // line is "blank" } 

The regex solution can also be simplified without anchors (because of how matches is defined in Java) as follows:

if (line.matches("\\s*")) {     // line is "blank" } 

API references

vote vote

80

Actually in multiline mode a more correct answer is this:

/((\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm 

The accepted answer: ^\s*$ does not match a scenario when the last line is blank (in multiline mode).

vote vote

73

Try this:

^\s*$ 
vote vote

69

The most portable regex would be ^[ \t\n]*$ to match an empty string (note that you would need to replace \t and \n with tab and newline accordingly) and [^ \n\t] to match a non-whitespace string.

vote vote

54

Full credit to bchr02 for this answer. However, I had to modify it a bit to catch the scenario for lines that have */ (end of comment) followed by an empty line. The regex was matching the non empty line with */.

New: (^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm

All I did is add ^ as second character to signify the start of line.

Top 3 video Explaining How to check if a line is blank using regex

Related QUESTION?