java正则表达式(一)

一、正则表达式字符意义

符号 意义
\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中的正则表达式,至于具体的操作,下次学到了再写。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章