in reply to Finding dictionary words in a string.
contains the words "apple", "cherry" and "blossom".
Actually, there is much more ...
#!/usr/bin/perl -w use strict; my $search_word = shift or die "search word required\n"; my @words = (); my $count = 0; open WORDS, "/usr/share/dict/words" or die "can't open words file\n"; while (<WORDS>) { chomp; printf "%3d %s\n", ++$count, $_ if $search_word =~ /$_/i; } close WORDS;
And here is the result:
$ perl wsearch.pl owijfwapplelaskfiwejfcherryalkfwiofwfblossomowiejf 1 Al 2 apple 3 as 4 ask 5 blossom 6 cherry 7 err 8 he 9 her 10 Herr 11 Io 12 Los 13 loss 14 mow 15 of 16 so 17 we
I know it's a brute force, but it takes less than half second to give this result.
Consider that Perl RegEx engine is using a Boyer-Moore search algorithm, which is probably the fastest one available for text matching.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Finding dictionary words in a string.
by toma (Vicar) on Mar 14, 2004 at 05:58 UTC | |
by cchampion (Curate) on Mar 14, 2004 at 08:02 UTC | |
by Anonymous Monk on Mar 15, 2004 at 04:04 UTC | |
by toma (Vicar) on Mar 14, 2004 at 18:28 UTC |