NAME

Regexp::Pattern::DefHash - Regexp patterns related to DefHash

VERSION

This document describes version 0.001 of Regexp::Pattern::DefHash (from Perl distribution Regexp-Pattern-DefHash), released on 2021-07-22.

SYNOPSIS

use Regexp::Pattern; # exports re()
my $re = re("DefHash::attr");

DESCRIPTION

Regexp::Pattern is a convention for organizing reusable regex patterns.

REGEXP PATTERNS

  • attr

    Tags: anchored, capturing

    Attribute key.

    Examples:

    Example #1.

    ".attr" =~ re("DefHash::attr");  # matches

    Example #2.

    "._attr" =~ re("DefHash::attr");  # matches

    Example #3.

    ".attr1.subattr2" =~ re("DefHash::attr");  # matches

    Example #4.

    "prop.attr1" =~ re("DefHash::attr");  # matches

    Example #5.

    "_prop._attr1" =~ re("DefHash::attr");  # matches

    Example #6.

    "Prop.attr1.subattr2.Subattr3" =~ re("DefHash::attr");  # matches

    Example #7.

    "_prop.attr1" =~ re("DefHash::attr");  # matches

    Cannot start with digit (1).

    ".0attr" =~ re("DefHash::attr");  # DOESN'T MATCH

    Cannot start with digit (2).

    "prop.0attr" =~ re("DefHash::attr");  # DOESN'T MATCH

    Cannot start with digit (3).

    "prop.attr.0subattr" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: dash (1).

    ".attr-ibute" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: dash (2).

    "prop-erty.attribute" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: dash (3).

    "prop.attr-ibute" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: whitespace (1).

    "property .attr" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: whitespace (2).

    "property.attr " =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid character: whitespace (3).

    ".attr " =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid syntax: dot only.

    "." =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid syntax: double dot.

    "..attr" =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid syntax: dot without attr.

    "attr." =~ re("DefHash::attr");  # DOESN'T MATCH

    Invalid syntax: dot without attr (2).

    "attr.." =~ re("DefHash::attr");  # DOESN'T MATCH

    Empty.

    "" =~ re("DefHash::attr");  # DOESN'T MATCH

    Property, not attribute.

    "p" =~ re("DefHash::attr");  # DOESN'T MATCH

    Property, not attribute.

    "_" =~ re("DefHash::attr");  # DOESN'T MATCH
  • attr_part

    Tags: anchored

    Attribute part in attribute key.

    Examples:

    Empty.

    "" =~ re("DefHash::attr_part");  # DOESN'T MATCH

    Example #2.

    "p" =~ re("DefHash::attr_part");  # matches

    Example #3.

    "p.q" =~ re("DefHash::attr_part");  # matches

    Dot prefix must not be included.

    ".p" =~ re("DefHash::attr_part");  # DOESN'T MATCH
  • key

    Tags: anchored, capturing

    Attribute key or property key.

    All keys in defhash must match this pattern.

    Examples:

    Example #1.

    "p" =~ re("DefHash::key");  # matches

    Example #2.

    "_" =~ re("DefHash::key");  # matches

    Example #3.

    "prop" =~ re("DefHash::key");  # matches

    Example #4.

    "Prop2" =~ re("DefHash::key");  # matches

    Example #5.

    "prop_" =~ re("DefHash::key");  # matches

    Cannot start with digit.

    "0prop" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: dash.

    "prop-erty" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: whitespace.

    "property " =~ re("DefHash::key");  # DOESN'T MATCH

    Example #9.

    ".attr" =~ re("DefHash::key");  # matches

    Example #10.

    "._attr" =~ re("DefHash::key");  # matches

    Example #11.

    ".attr1.subattr2" =~ re("DefHash::key");  # matches

    Example #12.

    "prop.attr1" =~ re("DefHash::key");  # matches

    Example #13.

    "_prop._attr1" =~ re("DefHash::key");  # matches

    Example #14.

    "Prop.attr1.subattr2.Subattr3" =~ re("DefHash::key");  # matches

    Example #15.

    "_prop.attr1" =~ re("DefHash::key");  # matches

    Cannot start with digit (1).

    ".0attr" =~ re("DefHash::key");  # DOESN'T MATCH

    Cannot start with digit (2).

    "prop.0attr" =~ re("DefHash::key");  # DOESN'T MATCH

    Cannot start with digit (3).

    "prop.attr.0subattr" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: dash (1).

    ".attr-ibute" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: dash (2).

    "prop-erty.attribute" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: dash (3).

    "prop.attr-ibute" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: whitespace (1).

    "property .attr" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: whitespace (2).

    "property.attr " =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid character: whitespace (3).

    ".attr " =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid syntax: dot only.

    "." =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid syntax: double dot.

    "..attr" =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid syntax: dot without attr.

    "attr." =~ re("DefHash::key");  # DOESN'T MATCH

    Invalid syntax: dot without attr (2).

    "attr.." =~ re("DefHash::key");  # DOESN'T MATCH

    Empty.

    "" =~ re("DefHash::key");  # DOESN'T MATCH
  • prop

    Tags: anchored

    Property key.

    Examples:

    Example #1.

    "p" =~ re("DefHash::prop");  # matches

    Example #2.

    "_" =~ re("DefHash::prop");  # matches

    Example #3.

    "prop" =~ re("DefHash::prop");  # matches

    Example #4.

    "Prop2" =~ re("DefHash::prop");  # matches

    Example #5.

    "prop_" =~ re("DefHash::prop");  # matches

    Cannot start with digit.

    "0prop" =~ re("DefHash::prop");  # DOESN'T MATCH

    Invalid character: dash.

    "prop-erty" =~ re("DefHash::prop");  # DOESN'T MATCH

    Invalid character: whitespace.

    "property " =~ re("DefHash::prop");  # DOESN'T MATCH

    Empty.

    "" =~ re("DefHash::prop");  # DOESN'T MATCH

    Attribute, not property.

    "prop.attr" =~ re("DefHash::prop");  # DOESN'T MATCH

    Attribute, not property.

    ".attr" =~ re("DefHash::prop");  # DOESN'T MATCH
  • prop_or_attr

    Tags: anchored, capturing

    Attribute key or property key.

    All keys in defhash must match this pattern.

    Examples:

    Example #1.

    "p" =~ re("DefHash::prop_or_attr");  # matches

    Example #2.

    "_" =~ re("DefHash::prop_or_attr");  # matches

    Example #3.

    "prop" =~ re("DefHash::prop_or_attr");  # matches

    Example #4.

    "Prop2" =~ re("DefHash::prop_or_attr");  # matches

    Example #5.

    "prop_" =~ re("DefHash::prop_or_attr");  # matches

    Cannot start with digit.

    "0prop" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: dash.

    "prop-erty" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: whitespace.

    "property " =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Example #9.

    ".attr" =~ re("DefHash::prop_or_attr");  # matches

    Example #10.

    "._attr" =~ re("DefHash::prop_or_attr");  # matches

    Example #11.

    ".attr1.subattr2" =~ re("DefHash::prop_or_attr");  # matches

    Example #12.

    "prop.attr1" =~ re("DefHash::prop_or_attr");  # matches

    Example #13.

    "_prop._attr1" =~ re("DefHash::prop_or_attr");  # matches

    Example #14.

    "Prop.attr1.subattr2.Subattr3" =~ re("DefHash::prop_or_attr");  # matches

    Example #15.

    "_prop.attr1" =~ re("DefHash::prop_or_attr");  # matches

    Cannot start with digit (1).

    ".0attr" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Cannot start with digit (2).

    "prop.0attr" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Cannot start with digit (3).

    "prop.attr.0subattr" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: dash (1).

    ".attr-ibute" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: dash (2).

    "prop-erty.attribute" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: dash (3).

    "prop.attr-ibute" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: whitespace (1).

    "property .attr" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: whitespace (2).

    "property.attr " =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid character: whitespace (3).

    ".attr " =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid syntax: dot only.

    "." =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid syntax: double dot.

    "..attr" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid syntax: dot without attr.

    "attr." =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Invalid syntax: dot without attr (2).

    "attr.." =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

    Empty.

    "" =~ re("DefHash::prop_or_attr");  # DOESN'T MATCH

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Regexp-Pattern-DefHash.

SOURCE

Source repository is at https://github.com/perlancar/perl-Regexp-Pattern-DefHash.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Regexp-Pattern-DefHash

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

DefHash specification.

Regexp::Pattern

Some utilities related to Regexp::Pattern: App::RegexpPatternUtils, rpgrep from App::rpgrep.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by perlancar@cpan.org.

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