一、简介
1、正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换。
2、用途:
(1)测试某个字符串是否匹配某个模式,从而实现数据格式的有效性验证。例如IP、E-mail、日期时间、论坛发表帖子不含禁止言论等;
(2)在一段文本中查找具有某一特征的文本内容。精确搜索是搜索一个具体、确定的文本,而模式搜索是搜索具有某一特征的文本;
(3)将一段文本中满足某一正则表达式的模式的文本内容替换为其他内容或删除。
二、创建正则表达式
正则表达式是包含以下内容的字符串:
1、所有可以合法的可显示字符或控制字符;
2、特殊字符:
特殊字符 | 说明 |
\ | 转义下一个字符,要匹配 \ 本身,使用 \\ |
. | 代表任何一个字符 |
| | 在指定两项之间任选一项,要匹配 | 使用 \| |
? | 指定前面的表达式可以出现一次或0次 |
* | 指定前面的表达式可以出现0次或n次 |
+ | 指定前面的表达式可以出现一次或n次 |
{ } | 大括号表达式,要匹配本身,使用 \{ \} |
[ ] | 中括号表达式 |
() | 小括号表达式 |
^ | 开始,使用\^匹配本身 |
$ | 结束 |
3、通配符
是正则表达式中用于匹配一类字符的特殊字符。
预定义字符 | 说明 |
\d | digit代表任何一个数字 |
\D | 代表任何一个非数字的字符 |
\s | space,代表空格类字符:\t,\n,\r,\f |
\S | 代表任何一个非空格类字符 |
\w | word,代表可用于标识符的字符(字母、数字、_) |
\W | 代表不能用于标识符的字符 |
4、常用限定符
指?,*,+等在正则表达式中有特殊意义的字符。
常用限定符 | 说明 |
X? | X出现0次或1次 |
X * | X出现0次或多次 |
X+ | X出现1次或多次 |
X{n} | X恰好出现n次 |
X{n, } | X至少出现n次 |
X{n,m} | X出现n次 ~ m次 |
5、方括号模式
在正则表达式中可以使用一对方括号括起若干个字符,代表方括号中的任何一个字符
方括号表达式 | 说明 |
[abc] | 代表a,b,c中的任何一个 |
[^abc] | 代表除a,b,c以外的任何一个字符 |
[a-d] | 代表a~d中的任何一个 |
[a-d[m-p]] | 代表a~d或m~p中的任何字符(并集) |
[a-z&&[def] | 代表a~z和def的交集,即def |
[a-f&&[^bc]] | 代表a~f和bc的差集,aef |
6、圆括号模式
可以将括起的若干个字符合成一个字符
圆括号表达式 | 说明 |
a(bc)* | 代表a后面跟0个或者多个“bc” |
a(bc){1,5} | 代表a后面跟1~5个"bc" |