什么是正则表达式
一组字符串中提取的公共部分字符,可以用于查找、编辑、操作文本数据。
核心类
Pattern,用于表示被编译的正则表达式对象。
Matcher,解释Pattern对象的引擎,针对指定的字符串执行匹配操作。
- find() 在指定字符中查找Pattern,如果找到则返回true;此时Matcher没有重置,可以继续执行find()向后查找,先前被匹配的字符不会再次匹配。
- matches() 指定Pattern匹配完整的字符串。
PatternSyntaxException,是一个unchecked exception,用于表示正则表达式Pattern的语法错误。
String Literals 字符串常量
例一
表达式:abc
字符串:abc
find返回true,group是abc
例二
表达式:b
字符串:aaa
find返回false
例三
表达式:a
字符串:aaa
find第1次返回true,group是a
find第2次返回true,group是a
find第3次返回true,group是a
Character Classes 字符类
例一 simple class
表达式:[abc]
字符串:ab
find第1次返回true,group是a
find第2次返回true,group是b
解读:属于a、b、c中的任意一个字符
注:[] 表示一组字符,或关系。
例二 negation
表达式:[^abc]
字符串:adeb
find第1次返回true,group是d
find第2次返回true,group是e
解读:不属于a、b、c中的任意一个字符
例三 range
表达式:[a-bC-F]
字符串:D
find第1次返回true,group是D
解读:在a、b之间的任意一个字符,或者C、F之间的任意一个字符
例四 union
表达式:[a-b[C-F]]
字符串:D
find第1次返回true,group是D
解读:在a、b之间的任意一个字符,或者C、F之间的任意一个字符
例五 Intersection
表达式:[a-b&&[b-w]]
字符串:c
find返回false
解读:取两个范围的交集,只有一个字符b满足。
例六 Subtraction
表达式:[a-z&&[^c-d]]
字符串:c
find返回false
解读:取两个范围的差集,即属于a-z,但不属于c-d。因此,只有a-b和e-z两个范围满足。
Predefined Character Classes预定义字符类
例一
表达式:.
字符串:a
find返回true,group是a
解读:代表任意一个字符。
例二
表达式:d
字符串:1
find返回true,group是1
表达式:d
字符串:a
find返回false
表达式:D
字符串:a
find返回true,group是a
表达式:D
字符串:1
find返回false
解读:d 表示0-9中的任意一个数字;D 表示任意一个非数字。
例三
表达式:s
字符串:
find返回true,group是
表达式:S
字符串:a
find返回true,group是a
解读:s 表示任意一个whitespace字符,即 、、x0B、f 或 ;S 表示任意一个非whitespace字符。
例四
表达式:w
字符串:_
find返回true,group是_
表达式:W
字符串:$
find返回true,group是$
解读:w 表示任意一个word字符,即范围a-z,范围A-Z、_ 或 范围0-9;W 表示任意一个非word字符。
![3c87b1894dc48bf2f9f379f40df9aeb4.png](https://i-blog.csdnimg.cn/blog_migrate/f8c4278ede0333be5aa1364de3da4dba.jpeg)