Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: One line assigment statement with regex match

by broquaint (Abbot)
on Jun 23, 2005 at 09:27 UTC ( #469331=note: print w/ replies, xml ) Need Help??


in reply to One line assigment statement with regex match

This looks like a good case for Regex::Presuf i.e

use Regex::PreSuf; my $lineFromSomeTextFile = "your line right here\n"; my @terms = qw/ something matching a line /; my($word) = $lineFromSomeTextFile =~ /(${\presuf(@terms)})/; # or without PreSuf my($word) = $lineFromSomeTextFile =~ do {local $" = '|'; "(@terms)"}; print "found '$word' in: $lineFromSomeTextFile"; __output__ found 'line' in: your line right here
HTH

_________
broquaint


Comment on Re: One line assigment statement with regex match
Download Code
Replies are listed 'Best First'.
Re^2: One line assigment statement with regex match
by planetscape (Chancellor) on Jun 23, 2005 at 18:05 UTC

    Just because I really like grinder's Regexp::Assemble, and think such a cool module needs more exposure:

    #!/usr/bin/perl -w use Regexp::Assemble; my $lineFromSomeTextFile = "your line right here\n"; my $ra = Regexp::Assemble->new->add( "something", "matching", "a", "line" ); print $ra->re . "\n"; # because the output is cool # and sometimes educational my($word) = $lineFromSomeTextFile =~ /($ra)/; print "found '$word' in: $lineFromSomeTextFile";

    (For more on Regexp::Assemble see: Why machine-generated solutions will never cease to amaze me.)

    HTH,

    planetscape

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (14)
As of 2015-07-31 20:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (281 votes), past polls