Prev: Capture

Named Regex

Note! This site is about Perl 6.
If you are looking for a solution for Perl 5, please check out the Perl 5 tutorial.


use v6;

my $phone = "054-1234567";

# You can also create named regexes:

my regex prefix { \d ** 2..3 }
my regex number { <+digit - [0]> \d ** 6 }
# if $phone ~~ m/^ <prefix> '-' <number> $/ {
# but this does not work now so we write the full syntax:
if $phone ~~ m/^ <prefix=&prefix;> '-' <number=&number;> $/ {
    say "prefix $/<prefix>  number: $/<number>";
# as you can see $/ is also a hash

let's create the named regexes for the word and duplicate:


use v6;

my $s = 'The elvish brown fox jumped over the the lazy dog';
my regex word { \w+ [ \' \w+]? }
my regex dup  { << <word=&word;> \W+ $<word> >> }

if $s ~~ m/ <dup=&dup;> / {
    say "Found '{$<dup><word>}' twice in a row";

The Perl 6 Tricks and Treats newsletter has been around for a while. If you are interested to get special notification when there is new content on this site, it is the best way to keep track:
Full name:
This is a newsletter temporarily running on my personal site ( using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2012-01-01

Prev: Capture


In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 3.70088516

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.