Documentation

The Java™ Tutorials
Trail: Essential Java Classes
Lesson: Regular Expressions
Home Page > Essential Java Classes > Regular Expressions

Answers to Questions and Exercises:

Questions

  1. Question: What are the three public classes in the java.util.regex package? Describe the purpose of each.

    Answer:

    • Pattern instances are compiled representations of regular expressions.
    • Matcher instances are engines that interpret patterns and perform match operations against input strings.
    • PatternSyntaxException defines an unchecked exception indicating a syntax error in a regular expression.
  2. Question: Consider the string literal "foo". What is the start index? What is the end index? Explain what these numbers mean.

    Answer: Each character in the string resides in its own cell. Index positions point between cells. The string "foo" starts at index 0 and ends at index 3, even though the characters only occupy cells 0, 1, and 2.

  3. Question: What is the difference between an ordinary character and a metacharacter? Give an example of each.

    Answer: An ordinary character in a regular expression matches itself. A metacharacter is a special character that affects the way a pattern is matched. The letter A is an ordinary character. The punctuation mark . is a metacharacter that matches any single character.

  4. Question: How do you force a metacharacter to act like an ordinary character?

    Answer: There are two ways:

    • Precede the metacharacter with a backslash (\);
    • Enclose the metacharacter within the quote expressions, \Q (at the beginning) and \E (at the end).
  5. Question: What do you call a set of characters enclosed in square brackets? What is it for?

    Answer: This is a character class. It matches any single character that is in the class of characters specified by the expression between the brackets.

  6. Question: Here are three predefined character classes: \d, \s, and \w. Describe each one, and rewrite it using square brackets.

    Answer:

    \d Matches any digit. [0-9]
    \s Matches any white space character. [ \t\n-x0B\f\r]
    \w Matches any word character. [a-zA-Z_0-9]
  7. Question: For each of \d, \s, and \w, write two simple expressions that match the opposite set of characters.

    Answer:

    \d \D [^\d]
    \s \S [^\s]
    \w \W [^\w]
  8. Question: Consider the regular expression (dog){3}. Identify the two subexpressions. What string does the expression match?

    Answer: The expression consists of a capturing group, (dog), followed by a greedy quantifier {3}. It matches the string "dogdogdog".

    Exercises

    1. Exercise: Use a backreference to write an expression that will match a person's name only if that person's first name and last name are the same.

      Solution: ([A-Z][a-zA-Z]*)\s\1


Previous page: Questions and Exercises: Regular Expressions