in reply to Regexing my Search Terms

#!/usr/bin/perl -w use strict; $_ = qq(a "test phrase" +for -"this" +"reg ex"); my (@allkeys, @keys, @keysneed, @keysavoid); # break string in parts push @allkeys, $1 while /([+-]?(".*?"|'.*?'|\S*))/g; # filter accoording to first character @keys = grep /^[^+-]/, @allkeys; @keysneed = grep /^\+/, @allkeys; @keysavoid = grep /^\-/, @allkeys; # remove + and - s/^.// for @keysneed, @keysavoid; # remove bracketing quotes s/^(["'])(.*)\1$/$2/ for @keysneed, @keysavoid, @keys; print map "$_\n", '', @keys, '', @keysneed, '', @keysavoid, ''; __END__ OUTPUT: a test phrase for reg ex this
Took a bit of fiddling, I couldn't get it right with ["'] for some reason. :-/

Alternatively, you could always listen to merlyn and refer to CPAN :-)