Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Problems counting regex matches

by InfiniteSilence (Curate)
on Jan 15, 2014 at 22:01 UTC ( [id://1070732]=note: print w/replies, xml ) Need Help??


in reply to Problems counting regex matches

"...this is beyond my abilities at this point..."

Scale the problem back to your actual abilities and start from there. If you are confused by complex regular expressions (like I often am), break the problem down into simpler ones until you are more familiar (note: this example only finds words that are near but appear after your search term):

use strict; =pod ...if either revenue(s), sales or growth occur within three words of +the word currency or the phrase "foreign exchange." =cut my @sources = ('foreign exchange','currency'); my $sourceData = <<EOF; foreign exchange revenue wordiness happycat smiles currency revenue world cat blue runny a nice happy foreign exchange said that revenues would be up the day I last visited my foreign exchange they said revenues were goo +d wow currency makes good growth when currency came revenues dipped EOF my %searchvector = map {$_=>$_} qw|revenue sales growth|; my $cntFound = 0; for (@sources) { while($sourceData=~m/$_\s+(\w+)\s*(\w+)?\s*(\w+)?\s*/g) #does the w +ord appear? { # is anything in the searchvector in the found words? for ($1,$2,$3) { my $r = $_; $r=~s/revenues/revenue/; if($searchvector{$r}){++$cntFound}; } } } print qq|Total times search (| . (join ' ', (values %searchvector)) . +') found: ' . $cntFound . qq|\n|; 1;
Total times search (growth sales revenue) found: 6

Celebrate Intellectual Diversity

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1070732]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2024-04-19 20:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found