一、正则表达式字符意义
符号 | 意义 |
---|---|
\s | 表示匹配一个空白字符,相当于[ \t\n\x0B\f\r] |
\b | 表示匹配一个单词边界 |
\d | 表示匹配一个0~9的数字,相当于[0-9] |
\w | 表示匹配任意一个数字,字母,下划线,相当于[a-zA-Z0-9] |
* | 限定符,表示要匹配的字符(串)出现0到多次 |
? | 限定符,表示要匹配的字符(串)出现0次或1次 |
+ | 限定符,表示要匹配的字符(串)出现1到多次 |
{n} | 表示匹配前面的字符(串)n次 |
{n,m} | 表示匹配前面的字符(串)n到m次 |
() | 用于正则表达式分组 |
Note: | 以上非限定符的大写则表示除它本身外,匹配任何字符,如\S表示除空白字符外,匹配任何字符,相当于[^\s] |
^ | 表示匹配字符串的开头 |
$ | 表示匹配字符的结尾 |
[^] | 表示不匹配中括号内的表达式 |
[] | 表示匹配的一个范围 |
- | 范围连接符,用在中括号[]内,表示某个范围,如[a-z]表示小写字母a到z |
二、java类Pattern和Matcher的一些方法
(一)Pattern:
Pattern类相当于一个匹配的模板,看例子:
public class` TestPattern{
public static void main(String[] args){
Pattern p = p.compile("\\d{3}");
}
}
上面的代码中,Pattern
的方法compile()
表示编译了一个\\d{3}
正则表达式并让p
指向它,这个方法的返回值为Pattern
类型。这个正则表达式的意思是匹配3个数字,大家可能会想是不是我写错了,正则表达式不是\d
表示数字么?怎么这里是\\d
呢?这里解释一下,在java
中,一个\
(backslash),表示的是一个转义符,如\n
表示换行,所以如果在java中使用\d
,java虚拟机会认为是一个转义字符,而不是一个正则表达式,所以要用\d(backslash)来表示正则表达式中的数字,所有正则表达式在java中的转义都是一样的,要写两个\\
。
(二)Matcher:
这个类用来表示和模板p进行匹配的字符串和匹配后的处理操作,看例子:
public class` TestPattern{
public static void main(String[] args){
Pattern p = p.compile("\\d{3}");
Matcher m = p.matcher("535");
System.out.println(m.matches());
}
}
上面的代码,调用Pattern的matcher()
方法,传进一个要匹配的字符串,变量m
指向这个matcher()
方法返回的Matcher
类对象,最后调用matches()
方法检测是否匹配,可以看出,打印为true
.这里就不分析了,想必大家也能自己分析出来。
这里先简单介绍下java
中的正则表达式,至于具体的操作,下次学到了再写。