Java中正则表达式全文匹配的三种实现方式

1、String的matches()函数

String s="abc";
String pattern="a**";
s.matches(pattern);

2、Pattern的matches类函数

String s="abc";
String pattern="a**";
Pattern.matches(pattern,s);

3、Pattern 和Matcher 结合使用

String p="a**";
Pattern pattern=Pattern.compile(p);
Matcher matcher=pattern.matcher(s);

 

注意:这三种方式都是全文匹配,也就是相当于在

pattern匹配的收尾加了^和$

 

只有s的全文和pattern的全文匹配上才返回true

Matcher中的find函数,可以实现部分匹配。所谓部分匹配,可以理解为,把拆分成多个字符串,拆分后的字符串有部分是满足表达式的,把这些拆分后的字符串都找出来。

字符含义
1、?表示前面的字符匹配1次或者0次
2、* 表示前面的字符匹配任意次
3、+ 表示前面的字符匹配1次或多次(大于等于1次)
4、[]字符集合,匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”
5、()将()内的部分看做一个整体,然后和其他符号一起使用,入(abc)+指把(abc)匹配一次或者多次
6、{}修饰匹配次数的符号。如a{1}表示a出现1次,a{2,3}a至少出现2次或最多3次。
7、.表示匹配除换行任意字符1次(单行模式中),多行模式中匹配任意字符