Camelia
Prev: Capture

Named Regex

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

tutorial/regex2/named_regex.p6

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:

tutorial/regex2/named_regex2.p6

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:
Email:
Full name:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2012-01-01


Prev: Capture

Comments

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: 2.6769901

Perl 6 Tricks and Treats newsletter

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