Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发布说明,了解所有JDK版本的新功能、增强功能和已删除或弃用选项的信息。
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] |
\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