Regexp::RegGrp(3pm)
π Regexp::RegGrp π
okay so bestie, welcome to Regexp::RegGrp β that's the Perl module, documented here as Regexp::RegGrp(3pm), and yes you're reading the User Contributed Perl Documentation version. She groups a whole collection of regular expressions into one single regular expression and it is lowkey iconic. β¨
β¨ VERSION β¨
Version 2.00. that's it. that's the version. π
π¦ DESCRIPTION π¦
Groups regular expressions to one regular expression. fr fr, that's the whole bit. many regexes go in, one regex comes out. π
πΈ SYNOPSIS πΈ
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe',
modifier => $modifier
},
{
regexp => '%company%',
replacement => 'ACME',
modifier => $modifier
}
],
restore_pattern => $restore_pattern
}
);
$reggrp->exec( \$scalar );
To return a scalar without changing the input simply use (e.g. example 2): π«Ά
my $ret = $reggrp->exec( \$scalar );
The first argument must be a hashref. The keys are:
reggrp(required) β Arrayref of hashrefs. The keys of each hashref are:regexp(required) β A regular expression.replacement(optional) β Scalar or sub.
A replacement for the regular expression match. If not set, nothing will be replaced except store is set. In this case the match is replaced by something like sprintf("\x01%d\x01", $idx) where $idx is the index of the stored element in the store_data arrayref. If store is set the default is:
sub {
return sprintf( "\x01%d\x01", $_[0]->{store_index} );
}
If a custom restore_pattern is passed to to constructor you MUST also define a replacement. Otherwise it is undefined. π
If you define a subroutine as replacement an hashref is passed to this subroutine. This hashref has four keys:
matchβ Scalar. The match of the regular expression.submatchesβ Arrayref of submatches.store_indexβ The next index. You need this if you want to create a placeholder and store the replacement in the$self->{store_data}arrayref.optsβ Hashref of custom options.
modifier(optional) β Scalar. The default is'sm'.store(optional) β Scalar or sub. If you define a subroutine an hashref is passed to this subroutine. This hashref has three keys:matchβ Scalar. The match of the regular expression.submatchesβ Arrayref of submatches.optsβ Hashref of custom options.
A replacement for the regular expression match. It will not replace the match directly. The replacement will be stored in the $self->{store_data} arrayref. The placeholders in the text can easily be rereplaced with the restore_stored method later.
restore_pattern(optional) β Scalar or Regexp object. The default restore pattern is
qr~\x01(\d+)\x01~
This means, if you use the restore_stored method it is looking for \x010\x01, \x011\x01, ... and replaces the matches with $self->{store_data}->[0], $self->{store_data}->[1], ...
π EXAMPLES π
π Example 1
Common usage.
#!/usr/bin/perl
use strict;
use warnings;
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe'
},
{
regexp => '%company%',
replacement => 'ACME'
}
]
}
);
open( INFILE, 'unprocessed.txt' );
open( OUTFILE, '>processed.txt' );
my $txt = join( '', <INFILE> );
$reggrp->exec( \$txt );
print OUTFILE $txt;
close(INFILE);
close(OUTFILE);
π Example 2
A scalar is requested by the context. The input will remain unchanged.
#!/usr/bin/perl
use strict;
use warnings;
use Regexp::RegGrp;
my $reggrp = Regexp::RegGrp->new(
{
reggrp => [
{
regexp => '%name%',
replacement => 'John Doe'
},
{
regexp => '%company%',
replacement => 'ACME'
}
]
}
);
open( INFILE, 'unprocessed.txt' );
open( OUTFILE, '>processed.txt' );
my $unprocessed = join( '', <INFILE> );
my $processed = $reggrp->exec( \$unprocessed );
print OUTFILE $processed;
close(INFILE);
close(OUTFILE);
π«Ά AUTHOR π«Ά
Merten Falk, "<nevesenin at cpan.org>". Now maintained by LEEJO. π
π BUGS π
Please report any bugs or feature requests through the web interface at <http://github.com/leejo/regexp-reggrp-perl/issues>.
like, please actually do it, we wanna know. πβ¨
π§ SUPPORT π§
You can find documentation for this module with the perldoc command.
perldoc Regexp::RegGrp
β COPYRIGHT & LICENSE β
Copyright 2010, 2011 Merten Falk, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
and that's the whole page bestie, no cap π
the version is 2.00, it's Regexp::RegGrp(3pm) from the User Contributed Perl Documentation, this copy's perl v5.40.1 dated 2025-08-20, and you absolutely ate by reading all the way down here. periodt. π¦πΈπ
π¦ where this page comes from
- ubuntu resolute: libregexp-reggrp-perl 2.01-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libregexp-reggrp-perl 2.01-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms