# 问题与答案
问题: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
; 外国人姓名和国人的不一样,还要求大写和 空格
← 其他资源