正则表达式
正则表达式就是记录文本规则的代码
比如
[a-z] 表示a到z的任意一个字符
[a-z]+表示一个或多个a-z的字符组成的字符串
字符集合
- [abc] 表示a,b,c中的任意一个字符
- [^abc] 表示除a,b,c的任意一个字符
- [a-z]表示a-z中任意一个字符
- [a-zA-Z0-9]表示a-z,A-Z,0-9中任意一个字符
- [a-z&&[^bc]]a-z中出了b,c意外的任意一个字符
预定义字符集
\. 表示任意一个字符
\d 表示任意一个数字字符,相当于[0-9]
\w 表示单词字符,相当于[a-zA-Z0-9]
\s 空白字符[\t\n\r\f]
\D 非数字字符
\W 表示非单词字符
\S 表示非空白字符
数量词
X? 表示0个或1个X
X* 表示0个或任意多个X
X+ 表示1个或任意多个X(大于等于1个X)
X{n} 表示n个X,n表示一个数字
X{n,} 表示n个X到任意多个X(大于等于n个X)
X{n,m} 表示n个到m个X
比如:定义个6位数字
[0-9][0-9][0-9][0-9][0-9][0-9]
\d\d\d\d\d\d
\d{6}
分组{}
表示分组,可以将一系列正则表达式看做是一个整体
分组时可以使用"|"表示或的关系
比如:
{(\+86|0086)?\s?\d{11}}表示 +8613800138000 或 +0086 138800138000
{(\+86|0086)?\s*\d{11}}表示 +86 13800138000
便捷匹配
^代表字符串的开始
$代表字符串的结束