Try this:
perl -e ' $a="abc"; $b="aCd"; @m = $a=~ /([^$b])/i; print "@m\n"'Array @m will be empty whenever $a can be built from the letters in $b !
update: This regex says that "aa" can be built from letters in "a". But it can be used as a filter, before applying a more complex algorithm.
This is an example on how to use it (I don't claim it is perfect :)
use strict; my ($a,$b) = (shift, shift); my @m = $a =~ /([^$b])/ig; if ($#m < 0) { print "ok, can build '$a' using letters in '$b'\n"; foreach my $letter (split // => $a) { unless ($b =~ s/$letter//) { print "but will need an extra '$letter'\n" }; } } else { print "can't build '$a' because I don't have '",join("' and '", @m +),"'\n"; }
update: use of /ig may make it slower, but it gives an estimate on how many characteres are missing
In reply to Re: Finding One String in Another
by fglock
in thread Finding One String in Another
by Fideist11
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |