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."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.
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.
Answer: There are two ways:
\
);\Q
(at the beginning) and \E
(at the end).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.
\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] |
\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] |
(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".
Solution: ([A-Z][a-zA-Z]*)\s\1