包java.util.regex
中提供了正则表达式相关API。
正则表达式是什么?正则表达式描述了一组具有共同特征的字符串。
三个重要的类:
- Pattern
经过编译的正则表达式,它没有公开的构造器,调用静态方法compile返回一个Pattern对象,compile方法接受一个正则表达式的字符串 - Matcher
引擎,解释Pattern对象,执行匹配操作,不提供公开构造方法,调用Pattern对象的matcher方法返回一个Matcher对象 - PatternSyntaxException
不受检查的异常对象,表示正则表达式有语法错误
元字符
元字符有< > ( ) [ ] { } + - * \\ ^ = $ ! ? | .
我的记忆方法是将元字符分为两部分,括号和一串没有规律的字符。
对于没有规律的字符串,我的口诀心法是:加减乘除幂运算,一共等于十万美元,我很惊讶,很疑惑,或许该补上一个小数点。总之,自己清楚就OK~O(∩_∩)O
将元字符作为普通字符使用的方式:
- 在元字符前使用反斜杠
- 在元字符前后分别使用
\\Q
和\\E
,表示引用的开始和结束
分组
分组,是指用方括号包含的一组字符,用这些字符去匹配输入字符串中的一个单一字符
-
简单分组
在方括号中并排列举一些字符,比如
[abc]
,匹配字母a、b或c中的任意一个。举个列子,正则表达式
[bcr]at
将匹配bat
、cat
或rat
,但不能匹配hat
。这个正则表达式的意义是:以b、c或r字母开始,且紧跟at的字符串
未完待续……