http://www.perlmonks.org?node_id=1082994


in reply to regex doubt on excluding

A question on whitespace is difficult to address as one cannot see the objects of interest. Your regex suggests that in a multiline string you want to replace lines consisting only of whitespaces with truly empty lines. Whitespaces in non-empty lines will be preserved. I am replacing the whitespace with 'x' to see where we got matches:

use strict; use warnings; my $string = "next line is spaces next line is tabs and now some newlines end"; $string =~ s/^\s*$/x/mg; print "$string\n";
The result of this would be:
next line is spaces x next line is tabs x and now some newlines xx end
When you say you want to exclude newlines from the match, what is the desired effect you want to see? Preserve multiple empty lines?

Replies are listed 'Best First'.
Re^2: regex doubt on excluding
by Anonymous Monk on Apr 21, 2014 at 08:44 UTC
    Yes, that's it, Preserve multiple empty lines. (but without white-spaces)

      How about this?

      $string =~ s/^\s*?\n$/\n/mg;

      UPDATE: the regex is not working properly but this should, the \n and the $ are somewhat duplicate:

      $string =~ s/^\s*?\n/\n/mg;

        Thank you hdb... it worked...

        its working with $string =~ s/^\s*?\n/\n/mg; too... :-)