Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint

8.6. Exercises

See Section A.7 for answers to the following exercises. These exercises are among the most challenging in the entire book. But don't get too discouraged! The following chapters will actually be easier, partly because you'll have the power of regular expressions to help you.

  1. [4] Using the test program from the previous chapter, make a pattern that matches only lines containing either the word fred or wilma, followed by some whitespace, and then the word flintstone. So it should match the string I am fred flintstone (with one or more spaces or tabs between the names).

  2. [10] Here, we give you the answer; you decide what problem it's trying to solve. What do these real-world patterns match? What might they be used for?

    /"([^"]*)"/
    /^0?[0-3]?[0-7]{1,2}$/
    /^\b[\w.]{1,12}\b$/

    Try each of them in the test program. It may help to find some strings that match (and that fail to match) each one.

  3. [8] Make a pattern that will match a string containing nothing but a scalar variable's name (not its value!), like $fred, $barney, or $_ (but you shouldn't match special variables like $0). That is, if the line of input has the six characters $wilma, the pattern should match. If the input says wilma, it should not match.

  4. [12] Make a pattern that matches any line of input that has the same word repeated two or more times in a row. Words in this problem can be considered to be sequences of letters a to z or A to Z, digits, and underscores. Whitespace between words may differ. For example, the classic observation-test string Paris in the the spring should match, since it has a doubled word. Also, I think that that is the problem should match, even though that may be a correct use of a doubled word. Does your pattern match all three words in I think that that that is the problem (with extra spaces between only some of the words)? Does it match This is a test? How about This shouldn't match, according to the theory of regular expressions?


  

You are currently reading a PREVIEW of this book.

                                                                                                                    

Get instant access to over $1 million worth of books and videos.

  

Start a Free Trial


  
  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint