# 问题和练习：正则表达式

> 原文： [https://docs.oracle.com/javase/tutorial/essential/regex/QandE/questions.html](https://docs.oracle.com/javase/tutorial/essential/regex/QandE/questions.html)

## 问题

1.  `java.util.regex`包中的三个公共类是什么？描述每个人的目的。
2.  考虑字符串文字`"foo"`。什么是起始指数？什么是最终指数？解释这些数字的含义。
3.  普通字符和元字符有什么区别？举一个每个例子。
4.  你如何强迫元字符像普通字符一样？
5.  你怎么称方括号括起来的一组字符？它是为了什么？
6.  这里有三个预定义的字符类：`\d`，`\s`和`\w`。描述每一个，并使用方括号重写它。
7.  对于`\d`，`\s`和`\w`中的每一个，写入 _ 两个 _ 简单表达式，匹配 _ 对应的 _ 字符集。
8.  考虑正则表达式`(dog){3}`。确定两个子表达式。表达式匹配什么字符串？

## 演习

1.  仅当该人的名字和姓氏相同时，才使用反向引用来编写与人名相匹配的表达式。

[检查你的答案。](answers.html)