Prev: Escape characters

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

Matching space(s) can be done in several ways


#!/usr/bin/env perl6
use v6;

my $str = 'The black cat climbed to the green tree.';

if $str ~~ m/black  cat/ {
    say "Matching '$/'";
} else {
    say "No match as whitespaces are disregarded";
# If there was only one space between 'black' and 'cat' in the regex, then we would get this warning:

# Potential difficulties:
#     Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing)
#     at files/tutorial/regex2/spaces_in_regex.p6:7
#     ------> if $str ~~ m/black⏏ cat/ {

if $str ~~ m/  black \s cat / {
    say "Matching - Perl 5 style white-space meta character works";

if $str ~~ m/black  ' '  cat/ {
    say "Matching the real Perl 6 style would be to use strings embedded in regexes";

if $str ~~ m/black <space> cat/ {
    say "Matching - or maybe the Perl 6 style is using named character classes ";

You can see that once can embed literal strings in the regex using single quotes and there are new type of character classes witing angle brackets.

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: Escape characters


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

Perl 6 Tricks and Treats newsletter

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