基本概念
元字符
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
示例:
(1) \ba\w\b 匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w),最后是单词结束处(\b)
(2) \d+匹配1个或更多连续的数字
(3) \b\w{6}\b 匹配刚好6个字符的单词。
(4) ^\d{5,12}$ 匹配有5到12个字符的QQ
重复信息,表示0个到多个字符
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
字符类,表示一个字符
[0-9]表示一个0到9的数字,和
\d
同义[a-z0-9A-Z_]表示一个数字或者大小写字母或者_
\(?0d{2}[)-]?\d{8}表示0个或者1个
(
,接着是一个0
,接着是两个数字,接着是0个或者1个)
或者-
,最后是8个数字
分枝条件 |
匹配原理,从左至右,匹配成功之后就不会往后匹配
(1) 0\d{2}-\d{8}|0\d{3}-\d{7} 0开始两个数字,然后-,然后是8个数字;或者0开始之后三个数字,然后-,然后是7个数字
(2) \(?0\d{2}\)?[- ]?\d{8}|0\d{2}[-]?\d{8} 以0个或者1个(
开始,然后是一个0,然后是两个数字,然后是0个或者1个)
,然后是8个数字;或者0开始,然后是两个数字,然后是0个或者1个-,然后是8个数字
(3) \d{5}-\d{4}|\d{5}
分组 ()
(1) (\d{1,3}\.){3}d{1,3} 粗略的匹配IP地址,首先1-3个数字加.
重复三次,然后是1-3个数字
(2) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 精细的匹配IP地址,使用()
和|
组合
反义
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符