# 问题和练习:正则表达式 > 原文: [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)