Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
java.util.regex 包中的三个公共类是什么?描述每一个的目的。
答案:
Pattern 实例是正则表达式的编译表示。Matcher 实例是解释模式并对输入字符串执行匹配操作的引擎。PatternSyntaxException 定义非检查型异常,指示正则表达式中的语法错误。"foo"。起始索引是什么?结束索引是什么?解释这些数字的含义。
答案:字符串中的每个字符都驻留在自己的单元格中。索引位置指向单元格之间。字符串 "foo" 从索引 0 开始,到索引 3 结束,即使字符只占用单元格 0,1 和 2。
答案:正则表达式中的普通字符与自身匹配。元字符是一种影响模式匹配方式的特殊字符。字母 A 是普通字符。标点符号 . 是一个匹配任何单个字符的元字符。
答案:有两种方法:
\);\Q(在开头)和 \E(在结尾处)。答案:这是字符类。它匹配括号中表达式指定的字符类中的任何单个字符。
\d,\s 和 \w。描述每一个,并使用方括号重写它。
答案:
\d |
匹配任何数字。 | [0-9] |
\s |
匹配任何空白字符。 | [ \t\n-x0B\f\r](译注:这里应该是 [ \t\n\x0B\f\r]) |
\w |
匹配任何单词字符。 | [a-zA-Z_0-9] |
\d,\s 和 \w 中的每一个,编写 两个 简单表达式与 相反的 字符集匹配。
答案:
\d |
\D |
[^\d] |
\s |
\S |
[^\s] |
\w |
\W |
[^\w] |
(dog){3}。确定两个子表达式。表达式匹配什么字符串?
答案:表达式由捕获组 (dog) 组成,后跟贪婪量词 {3}。它匹配字符串“dogdogdog”。
解决方案:([A-Z][a-zA-Z]*)\s\1