NAME

SVG::Rasterize::Regexes - Commonly used regular expressions

VERSION

Version 0.000009

DESCRIPTION

The following regular expressions are used at different locations of the code to validate or extract user input. It is not part of the interface where exactly they are used. They are documented for inspection only. They are compiled into other expressions so changing them will probably not achieve what you might expect. The exception to this rule is the PACKAGE_NAME variable. The other items are more or less a direct translation of parts of the Backus Naur form given by the SVG specification for the transform attribute (http://www.w3.org/TR/SVG11/coords.html#TransformAttribute).

  • PACKAGE_PART

    qr/[a-zA-Z][a-zA-Z0-9\_]*/
  • PACKAGE_NAME

    qr/^$PACKAGE_PART(?:\:\:PACKAGE_PART)*$/

    Package names given to methods in this distribution, namely the engine_class parameters have to match this regular expression. I am not sure which package names exactly are allowed. If you know where in the Perl manpages or the Camel book this is described, please point me to it. If this pattern is too strict for your favourite package name, you can change this variable.

  • INTEGER

    qr/[\+\-]?\d+/;

    Note that this allows leading zeroes like '00030'. This is for compliance with the SVG specification.

  • FRACTION

    qr/[\+\-]?(?:\d*\.\d+|\d+\.)/;

    Floating point number in non-scientific notation. Note that this allows leading zeroes like '000.123'. This is for compliance with the SVG specification.

  • EXPONENT

    qr/[eE][\+\-]?\d+/;
  • FLOAT

    qr/$FRACTION$EXPONENT?|$INTEGER$EXPONENT/;

    Floating point number in decimal or scientific notation.

  • P_NUMBER

    qr/$INTEGER|$FRACTION/;

    Number allowed in CSS compliant style properties: integer or float in decimal notation.

  • A_NUMBER

    qr/$INTEGER|$FLOAT/;

    Number allowed in XML attributes. Integer or float in either decimal or scientific notation.

  • UNIT

    qr/em|ex|px|pt|pc|cm|mm|in|\%/;
  • P_LENGTH

    qr/$P_NUMBER$UNIT?/;
  • A_LENGTH

    qr/$A_NUMBER$UNIT?/;

SEE ALSO

AUTHOR

Lutz Gehlen, <perl at lutzgehlen.de>

LICENSE AND COPYRIGHT

Copyright 2010 Lutz Gehlen.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.