NAME

Geo::UK::Postcode::Regex::Simple

SYNOPSIS

use Geo::UK::Postcode::Regex::Simple ':all';

# Set behaviour of regular expression (defaults below)
local $Geo::UK::Postcode::Regex::Simple::MODE             = 'strict';
local $Geo::UK::Postcode::Regex::Simple::PARTIAL          = 0;
local $Geo::UK::Postcode::Regex::Simple::CAPTURES         = 1;
local $Geo::UK::Postcode::Regex::Simple::ANCHORED         = 1;
local $Geo::UK::Postcode::Regex::Simple::CASE_INSENSITIVE = 0;

# Regular expression to match postcodes
my $re = postcode_re;
my ( $area, $district, $sector, $unit ) = "AB10 1AA" =~ re;

# Get hashref of data parsed from postcode
my $parsed = parse_pc "AB10 1AA";

# Extract list of postcodes from text string
my @extracted = extract_pc $text;

# Check if string is a correct postcode 
if ( validate_pc $string ) {
    ...
}

Alternate global configuration:

use Geo::UK::Postcode::Regex::Simple    #
    -strict                             # or -lax, -valid
    -full                               # or -partial
    -anchored                           # or -unanchored
    -captures                           # or -nocaptures
    -case-sensitive                     # or -case-insensitive
    ;

DESCRIPTION

Alternative interface to Geo::UK::Postcode::Regex.

CONFIGURATION

MODE

Sets the regular expressions used to be in one of the following modes:

lax

Matches anything that resembles a postcode.

strict (default)

Matches only if postcode contains valid characters in the correct positions.

valid

Matches only if the postcode contains valid characters and the outcode exists.

PARTIAL (default = false )

If true, regular expression returned by postcode_re will match partial postcodes, at district (outcode) or sector level, e.g. "AB10" or "AB10 1".

ANCHORED (default = true )

Puts anchors (^ and $) around the regular expression returned by postcode_re.

CAPTURES (default = true )

Puts capture groups into the regular expression returned by postcode_re. The matches returned upon a successful match are: area, district, sector and unit.

CASE_INSENSITIVE (default = false)

If false, only parses/matches/extracts postcodes that contain only upper case characters.

FUNCTIONS

postcode_re

my $re = postcode_re;

Returns a regular expression which will match UK Postcodes. See CONFIGURATION for details.

parse_pc

my $parsed = parse_pc $pc;

Returns a hashref of data extracted from the postcode. See parse in Geo::UK::Postcode::Regex for more details.

extract_pc

my @extracted = extract_pc $test;

Returns a list of postcodes extracted from a text string. See extract in Geo::UK::Postcode::Regex for more details.

validate_pc

if ( validate_pc $pc ) {
    ...
}

Boolean test for if a string is a (full) postcode or not, according to current MODE (see CONFIGURATION).

AUTHOR

Michael Jemmeson <mjemmeson@cpan.org>

COPYRIGHT

Copyright 2014- Michael Jemmeson

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.