一、正则表达式概念

使用单个字符串来描述/匹配一系列符合某个语法规则的字符串

二、正则表达式常用字符

1 字符类:

如[abc] 将字符进行归类,可以出现[]中的其中一个 对abc其中一个进行匹配

[^abc] 对不是abc的字符进行匹配

2 范围类:

[a-z] 表示代表a-z中的一个字符

    表示所有的英文字母和数字 [a-zA-Z0-9]

3 预定义类:

\d == [0-9] 数字

    \D == [^0-9] 非数字

4 空白字符类:

[ \t\n\x0B\f\r] == \s

[^ \t\n\x0B\f\r] == \S

[a-zA-Z0-9_]== \w

 [^a-zA-Z0-9]== \W

  . ==   任何字符(与行结束符可能匹配也可能不匹配)

5 边界字符类:

^:以XXX开头

    $:以XXX结尾

    \b:单词边界: 数字 字母 下划线 中文 的两边称为单词边界

    \B:非单词边界 数字 字母 下划线 中文的里面称为非单词边界

6 量词类:

?:出现0次或者1次

    +:出现1次或者多次

    *:出现任意次

    {n}:出现正好n次

    {n,m}出现n-m次

    {n,}出现至少n次

7 分组 ()

将需要定义的字符用“()”括起来,例如:(Jack){3,}表示的是让Jack出现3次

忽略分组:每一组能够分组, 但是没有编号:在组的前面加上字符 ?: ,例如:(?:0-9)

三、正则表达式在Java中的应用

正则表达式在java中主要用来处理复杂的字符串,主要通过如下方法来引入正则表达式:

1.查找: find 、 Pattern 和 Matcher

2.替换: replace 、 replaceFirst 、replaceAll

注: 全文检索,满足条件即可替换

3.匹配: matches 、 matches

注: 需完全匹配

4.分割split工作