Answers to Chapter 7 Exercises
Here’s one way to do it:
while (<>) { if (/fred/) { print; } }This is pretty simple. The more important part of this exercise is trying it out on the sample strings. It doesn’t match
Fred, showing that regular expressions are case-sensitive. (We’ll see how to change that later.) It does matchfrederickandAlfred, since both of those strings contain the four-letter stringfred. (Matching whole words only, so thatfrederickandAlfredwouldn’t match, is another feature we’ll see later.)Here’s one way to do it:
Change the pattern used in the first exercise’s answer to
/[fF]red/. You could also have tried/(f|F)red/or/fred|Fred/, but the character class is more efficient.Here’s one way to do it:
Change the pattern used in the first exercise’s answer to
/\./. The backslash is needed because the dot is a metacharacter, or you could use a character class:/[.]/.Here’s one way to do it:
Change the pattern used in the first exercise’s answer to
/[A-Z][a-z]+/.Here’s one way to do it:
Change the pattern used in the first exercise’s answer to
/(\S)\1/. The\Scharacter class matches the nonwhitespace character, and the parentheses allow you to use the back reference\1to match the same character immediately following it.Here’s one way to do it:
while (<>) { if (/wilma/) { if (/fred/) { print; } } }This tests
/fred/only after we find/wilma/matches, butfredcould appear before or afterwilmain the line; each test is independent of the other.If you wanted to avoid ...