Regular Expressions
Literal Match
A regex can look for a fixed piece of text inside a scalar.
literal match
A literal match searches for the exact characters written in the pattern.
Literal Match
literal_match.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $text = "Perl regex guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";
print "text=$text\n";
print "result=$result\n";
use strict;
use warnings;
my $text = "Ruby regex guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";
print "text=$text\n";
print "result=$result\n";
use strict;
use warnings;
my $text = "Perl loop guide";
my $has_regex = $text =~ /regex/;
my $result = $has_regex ? "found" : "missing";
print "text=$text\n";
print "result=$result\n";
$text ← Perl regex guide, $has_regex ← 1, $result ← found
4my $text→ Perl regex guide = "Perl regex guide"; #@text="Ruby regex guide", "Perl loop guide"5my $has_regex→ 1 = $textPerl regex guide =~ /regex/;6my $result→ found = $has_regex1 ? "found" : "missing";78print "text=$textPerl regex guide\n";9print "result=$resultfound\n";outputtext=Perl regex guide result=found
$text ← Ruby regex guide, $has_regex ← 1, $result ← found
4my $text→ Ruby regex guide = "Ruby regex guide";5my $has_regex→ 1 = $textRuby regex guide =~ /regex/;6my $result→ found = $has_regex1 ? "found" : "missing";78print "text=$textRuby regex guide\n";9print "result=$resultfound\n";outputtext=Ruby regex guide result=found
$text ← Perl loop guide, $has_regex ← (empty), $result ← missing
4my $text→ Perl loop guide = "Perl loop guide";5my $has_regex→ (empty) = $textPerl loop guide =~ /regex/;6my $result→ missing = $has_regex(empty) ? "found" : "missing";78print "text=$textPerl loop guide\n";9print "result=$resultmissing\n";outputtext=Perl loop guide result=missing
Follow the Match
$textstarts asPerl regex guide.- The regex
/regex/looks for the exact textregex. - The text contains that word.
$has_regexis true.$resultbecomesfound. | text | containsregex? | result | | --- | --- | --- | | Perl regex guide | yes | found | | Ruby regex guide | yes | found | | Perl loop guide | no | missing |
Exercise: literal_match.pl
Reproduce text=Perl regex guide and result=found, then use the pinned text variants to predict result=found for Ruby regex guide and result=missing for Perl loop guide.