一、正则表达式概念
使用单个字符串来描述/匹配一系列符合某个语法规则的字符串
二、正则表达式常用字符
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工作