一:基础语法
1.1:限定符
- X?:表示X,一个或一个也没有
- X*:表示X,零个到多个
- X+:表示X,一个到多个
- X{n}:表示X正好n个
- X{n,}:表示X至少有n个
- X{n,m}:表示X最少有n个但是不会超过m个
- 如果X为两位数或以上需要用()括起来后面再加上限定符,如:(ab)+
1.2:“或”运算符
- 匹配两个单词,a cat或者a dog
a (cat|dog)
1.3:字符类
- [abc]:配置abc中任意的字符
- [^abc]:匹配非abc的任意字符
- [0-9]:配置0-9之中的任意字符
- [a-zA-Z]:匹配范围在a-z,A-Z
- [^0-9]:匹配0-9之外的任意字符
1.4:元字符
-
\.
和. :任意字符(但是不包含换行符) -
\d:任意数字
-
\D:非数字
-
\w:单词字符 (所有的英文字符+数字+下划线)
-
\W:非单词字符
-
\s:空白字符 (空白符包含Tab和换行符)
-
\S:非空白字符
-
^:配置行首
-
$:匹配行尾
1.5: 贪婪与懒惰匹配
*,+,{},会尽可能多的去匹配字符,解决方法:就是加?切换成懒惰匹配
贪婪:尽可能匹配多的字符
懒惰:尽可能匹配少的字符
-
*+{} ?:会将贪婪匹配切换成懒惰匹配
-
<.+?>
:匹配所有的html标签如:<span></span>
,<html></html>
二:常用示例
2.1:颜色值匹配
匹配所有十六进制的RGB颜色值
-
#[a-fA-F0-9]{6}\b
-
取#,a到f、A到F、0到9之间的字符,取6个字符,\b代表单词字符的边界
2.2:IPv4地址匹配
\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
2.3:获取数字包含小数
\d+(\.\d+)?