Regexp::RegGrp(3pm)

πŸ“¦
version 2.01 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– 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 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