in reply to Regexing my Search Terms
#!/usr/local/bin/perl -w use strict; use diagnostics; my $str="foo bar -\"weenie roast\" +\"'foo' bar\" \\' -baz +boo +bee / + +ben fat faz -slim 'ooga booga' 'fee fie \\' foe fum' \\'do ray\\' +"; my (@KeysNeed,@KeysAvoid,@Keys); 1 while $str =~ /\+(\w+|((?<!\\)['"])(.*?)(?<!\\)(??{$2}))(?{push @Key +sNeed,$3||$1})|-(\w+|((?<!\\)['"])(.*?)(?<!\\)(??{$5}))(?{push @KeysA +void,$6||$4})|(\w+|((?<!\\)['"])(.*?)(?<!\\)(??{$8}))(?{push @Keys,$9 +||$7})/g; use Data::Dumper; print Dumper(\@KeysNeed,\@KeysAvoid,\@Keys);
|
|---|