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
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.
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.