限定符
- . : 匹配除了换行符之外的任何单个字符。.色--任何"绿色"、"黄色"..在文本中都会被提取出来。
- ? : used?--前面的d出现0次或者1次,即'd'可有可无。
- * : ab*c--'b'可以没有可以多次。
- + : ab+c --b必须为1次以上的次数。(ab)+--ab出现1次以上。
- { } :ab{6}c--b出现为6次;ab{2,6}c--b出现的次数为2次或6次。
‘或’运算符
- | : a (dog|cat)--匹配要么是a dog要么是a cat。
- [ ] :[a-zA-Z0-9]+--大小写字母和数字出现了1次以上。[^0-9]+--非数字出现了1次以上。
元字符
- \d : 数字字符0-9
- \D : 非数字字符
- \w : 英文、数字、上下划线
- \W : 非单词字符
- \s : 空白符(包含Tab和换行符)
- \S : 非空白符
- . : 任意字符但不包含换行符
- ^ : 匹配行首。^a--匹配行首的a,apple。
- $ : 匹配行尾。a$--匹配行尾的a, tea。
案例一
-
匹配<span> : <span>I am a beauty!<span>
-
正则:<.+> 则会匹配整个句子而我们想匹配的只有<span>,所以加上一个?就可以转换为懒惰匹配。即:<.+?>
案例二
- 匹配IP地址:
255.255.255.0
192.168.0.1
- 正则:\d+.\d+.\d+.\d+
→\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b