Serguei Trouchelle <> wrote:
> Stephane Legault wrote:
>
>> I need to replace white space between delemiter "". After looking for
>> do this I need to tell I did not find the solution!
>> $test='test "ROYALE JEWELLER"@omr12.test.com <mailto:"ROYALE
>> JEWELLER"@omr12.networksolutionsemail.com> test'; And I would like
>> have this in $test3 (look the space between royale and jeweller is
>> gone): test "ROYALEJEWELLER"@omr12.networksolutionsemail.com test
>
> $test =~ s/(".*?")/ $_ = $1; s!\s!!g; $_; /gex;
A possible alternative for matching the quoted substring is to use
Regexp::Common. It may be more verbose, but it has the advantage of
handling embedded quotes, as long as they are escaped. For example:
--------------------------------------------
use strict;
use warnings;
use Regexp::Common;
while (<DATA>) {
chomp;
print "Before: '$_'\n";
s/$RE{quoted}{-keep}/$_ = $1; s!\s!!g; $_/egx;
print "After: '$_'\n";
}
__DATA__
test "ROYALE JEWELLER"@omr12.test.com test
test "ROYALE \"JELLY\""@omr12.test.com test
--------------------------------------------
See 'perldoc Regexp::Common' for more useful REs. The code is quite
interesting too.
--
Brian Raven
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs