Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Store regular expressions in a file.

by roboticus (Chancellor)
on Nov 11, 2010 at 12:56 UTC ( #870852=note: print w/replies, xml ) Need Help??


in reply to Store regular expressions in a file.

yoda54:

I put this together:

#!/usr/bin/perl use strict; use warnings; # Read the regexes my @Rexes; while (my $t=<DATA>) { chomp $t; last if $t=~/^$/; my ($regex, $repl) = split /\t+/, $t; push @Rexes, [ qr($regex), $repl ]; } # Process the text while (my $l = <DATA>) { $l=~s/$$_[0]/$$_[1]/eg for @Rexes; print $l; } __DATA__ duck cluck a(b+)c c$1a That bird says "duck!" xyzzy plugh ac abc abbc abbbc

It mostly works, but as you can see from the following run, I haven't been able to make back references work...

roboticus@Boink:~ $ perl pm870806_dyn_regex.pl That bird says "cluck!" xyzzy plugh ac c$1a c$1a c$1a

...roboticus

Replies are listed 'Best First'.
Re^2: Store regular expressions in a file.
by eff_i_g (Curate) on Nov 11, 2010 at 15:48 UTC
    #!/usr/local/bin/perl use strict; use warnings; use String::Interpolate qw(safe_interpolate); # Read the regexes my @Rexes; while (my $t = <DATA>) { chomp $t; last if $t =~ /^$/; my ($regex, $repl) = split /\t+/, $t; push @Rexes, [ qr($regex), $repl ]; } # Process the text while (my $l = <DATA>) { $l=~ s/$$_[0]/safe_interpolate($$_[1])/eg for @Rexes; print $l, "\n"; } __DATA__ duck cluck a(b+)c \uc${1}\ua That bird says "duck!" xyzzy plugh ac abc abbc abbbc
    That bird says "cluck!" xyzzy plugh ac CbA CbbA CbbbA

      ++eff_i_g:

      Sweet! I played with it for a while before giving up on the capture groups. I'll have to be sure to keep this handy!

      ...roboticus

      Thanks everyone for the enlightenment!!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://870852]
help
Chatterbox?
[marto]: finding bugs, either in the CPU layer or hypervisor, finding undocumented instructions
[zentara]: are you talikng about perf?
[Discipulus]: i miss what an undocumented instructions can be, and how can be used
[zentara]: perf
[marto]: X86_instruction_li stings
[marto]: Illegal_opcode
[zentara]: marto arn't those NSA secrets? :-)

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (10)
As of 2017-07-28 12:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (428 votes). Check out past polls.