# DateTime::Format::Builder::Parser::Regex - Regex based date parsing - perldoc - [phpMan]

## NAME
    [DateTime::Format::Builder::Parser::Regex](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3AFormat%3A%3ABuilder%3A%3AParser%3A%3ARegex/markdown) - Regex based date parsing

## VERSION
    version 0.83

## SYNOPSIS
        my $parser = [DateTime::Format::Builder](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3AFormat%3A%3ABuilder/markdown)->create_parser(
            regex  => qr/^(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)$/,
            params => [qw( year month day hour minute second )],
        );

## SPECIFICATION
    In addition to the common keys, "Regex" supports:

    *   regex

        regex is a regular expression that should capture elements of the datetime string. This is a
        required element. This is the key whose presence indicates it's a specification that belongs
        to this class.

    *   params

        params is an arrayref of key names. The captures from the regex are mapped to these ($1 to
        the first element, $2 to the second, and so on) and handed to "DateTime->new". This is a
        required element.

    *   extra

        extra is a hashref of extra arguments you wish to give to "DateTime->new". For example, you
        could set the "year" or "time_zone" to defaults:

            extra => { year => 2004, time_zone => "Australia/Sydney" },

    *   constructor is either an arrayref or a coderef. If an arrayref then the first element is a
        class name or object, and the second element is a method name (or coderef since Perl allows
        that sort of thing). The arguments to the call are anything in $p and anything given in the
        "extra" option above.

        If only a coderef is supplied, then it is called with arguments of $self, $p and "extra".

        In short:

            $self->$coderef( %{$p}, %{ $self->{extra} } );

        The method is expected to return a valid DateTime object, or "undef" in event of failure,
        but can conceivably return anything it likes. So long as it's 'true'.

## SEE ALSO
    "<datetime@perl.org>" mailing list.

    <http://datetime.perl.org/>

    perl, DateTime, [DateTime::Format::Builder](https://www.chedong.com/phpMan.php/perldoc/DateTime%3A%3AFormat%3A%3ABuilder/markdown)

## SUPPORT
    Bugs may be submitted at <<https://github.com/houseabsolute/DateTime-Format-Builder/issues>>.

    I am also usually active on IRC as 'autarch' on "irc://irc.perl.org".

## SOURCE
    The source code repository for DateTime-Format-Builder can be found at
    <<https://github.com/houseabsolute/DateTime-Format-Builder>>.

## AUTHORS
    *   Dave Rolsky <<autarch@urth.org>>

    *   Iain Truskett <<spoon@cpan.org>>

## COPYRIGHT AND LICENSE
    This software is Copyright (c) 2020 by Dave Rolsky.

    This is free software, licensed under:

      The Artistic License 2.0 (GPL Compatible)

    The full text of the license can be found in the LICENSE file included with this distribution.

