NAME

Regexp::Common::numbers -- provide regexes for numbers

SYNOPSIS

use Regexp::Common qw /numbers/;

while (<>) {
    /$RE{num}{int}/                and  print "Integer\n";
    /$RE{num}{real}/               and  print "Real\n";
    /$RE{num}{real}{-base => 16}   and  print "Hexadecimal real\n";
}

DESCRIPTION

Please consult the manual of Regex::Common for a general description of the works of this interface.

Do not use this module directly, but load it via Regex::Common.

$RE{num}{int}{-sep}{-group}

Returns a pattern that matches a decimal integer.

If -sep=P is specified, the pattern P is required as a grouping marker within the number.

If -group=N is specified, digits between grouping markers must be grouped in sequences of exactly N characters. The default value of N is 3.

For example:

$RE{num}{int}                          # match 1234567
$RE{num}{int}{-sep=>','}               # match 1,234,567
$RE{num}{int}{-sep=>',?'}              # match 1234567 or 1,234,567
$RE{num}{int}{-sep=>'.'}{-group=>4}    # match 1.2345.6789

Under -keep (see Regexp::Common):

$1

captures the entire number

$2

captures the optional sign of the number

$3

captures the complete set of digits

$RE{num}{real}{-base}{-radix}{-places}{-sep}{-group}{-expon}

Returns a pattern that matches a floating-point number.

If -base=N is specified, the number is assumed to be in that base (with A..Z representing the digits for 11..36). By default, the base is 10.

If -radix=P is specified, the pattern P is used as the radix point for the number (i.e. the "decimal point" in base 10). The default is qr/[.]/.

If -places=N is specified, the number is assumed to have exactly N places after the radix point. If -places=M,N is specified, the number is assumed to have between M and N places after the radix point. By default, the number of places is unrestricted.

If -sep=P specified, the pattern P is required as a grouping marker within the pre-radix section of the number. By default, no separator is allowed.

If -group=N is specified, digits between grouping separators must be grouped in sequences of exactly N characters. The default value of N is 3.

If -expon=P is specified, the pattern P is used as the exponential marker. The default value of P is qr/[Ee]/.

For example:

$RE{num}{real}                  # matches 123.456 or -0.1234567
$RE{num}{real}{-places=2}       # matches 123.45 or -0.12
$RE{num}{real}{-places='0,3'}   # matches 123.456 or 0 or 9.8
$RE{num}{real}{-sep=>'[,.]?'}   # matches 123,456 or 123.456
$RE{num}{real}{-base=>3'}       # matches 121.102

Under -keep:

$1

captures the entire match

$2

captures the optional sign of the number

$3

captures the complete mantissa

$4

captures the whole number portion of the mantissa

$5

captures the radix point

$6

captures the fractional portion of the mantissa

$7

captures the optional exponent marker

$8

captures the entire exponent value

$9

captures the optional sign of the exponent

$10

captures the digits of the exponent

$RE{num}{dec}{-radix}{-places}{-sep}{-group}{-expon}

A synonym for $RE{num}{real}{-base=>10}{...}

$RE{num}{oct}{-radix}{-places}{-sep}{-group}{-expon}

A synonym for $RE{num}{real}{-base=>8}{...}

$RE{num}{bin}{-radix}{-places}{-sep}{-group}{-expon}

A synonym for $RE{num}{real}{-base=>2}{...}

$RE{num}{hex}{-radix}{-places}{-sep}{-group}{-expon}

A synonym for $RE{num}{real}{-base=>16}{...}

SEE ALSO

Regexp::Common for a general description of how to use this interface.

AUTHOR

Damian Conway (damian@conway.org)

MAINTAINANCE

This package is maintained by Abigail (regexp-common@abigail.nl).

BUGS AND IRRITATIONS

Bound to be plenty.

For a start, there are many common regexes missing. Send them in to regexp-common@abigail.nl.

COPYRIGHT

Copyright (c) 2001 - 2002, Damian Conway. All Rights Reserved.
  This module is free software. It may be used, redistributed
 and/or modified under the terms of the Perl Artistic License
       (see http://www.perl.com/perl/misc/Artistic.html)