在Java中,正则表达式主要用于处理字符串,字符串的查找以及匹配等操作。
在Java中与正则表达式相关的两个类是Pattern和Matcher类。
Pattern类又叫模式类,Matcher类叫匹配器类,
Pattern类的使用
Pattern类没有共有的构造函数,只有私有的构造函数,但类提供了一个工厂方法来生成Pattern实例。
static Pattern compile(String regex)
如:Pattern p = Pattern.compile("\\d+");
Regex模式的使用
字符
x 字符x
\\ \
\n 换行
\r 回车
字符类
[abc] a、b或者c中的一个
[^abc] 除a、b、c外的一个字符
[a-zA-Z] 字母a-z或者字母A-Z中的一个字符
[a-d[m-p]] 字母a-d或者m-p 中的一个字符 (表示[a-d]与[m-p]的并集)
[a-z&&[def]] 字母d或者e或者f中的一个字符 (表示[a-z]与[def]的交集)
预定义字符
. 任意字符
\d 数字 相当于[0-9]
\D 非数字 相当于[^0-9]
\w 字母 相当于[a-zA-Z_0-9]
\W 非字母
数量词
X? X出现或者不出现
X* X出现0次或者多次 >=0
X+ X至少出现一次 >=1
X{n} X出现n次
X{n,} X至少出现n次
X{n,m} X出现次数大于n,小于m
Matcher类的使用
Matcher类没有公共的构造函数,只能通过Pattern.matcher(String input)来生成。
Matcher类里面一些重要的方法
匹配函数 matches lookingAt find
matches匹配整个主字符串,看是否整个主字符串匹配 regex模式
lookingAt 从主字符串的起始位置开始匹配
find 从主字符串的任意位置开始匹配
在find()函数基础之上,有start,end,group函数
start() 返回此次匹配到的字符串的第一个字符在主字符串中的位置
end() 返回此次匹配到的字符串的最后字符在主字符串中的位置
group() 返回此次匹配到的字符串