if (/($regex_string)/is) {
####
while (/$regex_string)/isg) {
print "\nmatched in $arg1:\n==$1==\n";
}
####
part1.*?part2 part1.*?part2
Foo bar
Other pattern
####
hghghgghghh
part1
fff
part2
blah blah
Foo bar
more noise
Other pattern
another match for
part1
stuff I
don't want
to see part2
blabla
####
#!/usr/bin/perl -w
use strict;
my $patterns = "patterns.txt";
my $arg1 = shift;
my $regex_string = '';
my %patterns;
open (PAT, '<', $patterns) or die "$patterns: $!\n";
while () {
chomp;
my ( $pattern, $replace ) = split '\t';
$patterns{$pattern} = $replace if ( $replace );
$regex_string .= $pattern . '|';
}
close(PAT);
chop $regex_string; # remove string-final '|';
open( FILE, "<", "$arg1") or die "$arg1: $!\n";
$_ = do { local $/; };
close(FILE);
while ( /($regex_string)/gis ) {
my $match = $1;
for my $replc ( keys %patterns ) {
last if ( $match =~ s/$replc/$patterns{$replc}/is );
}
print "\nmatched in $arg1:\n==$match==\n";
}