正则表达式
1. 限定符
- ? 表示?之前的一个字符可以有0或1次,例如used?能匹配到user和used
- ***** 表示✳之前的一个字符可以有0或n次,例如ab✳c能匹配到ac,abc,abbc,abbbc…
- **+ **表示+之前的一个字符可以有1或n次,例如ab+c能匹配到abc,abbc…
- **{} **表示在该{}之前的一个字符出现的次数为{}中的数字,可以是2-6次{2,6},2次{2},3次及以上{3,}
- 注意:
- 如果将限定符用在2-n个字符上,可以用()将字符括起来,然后在其后添加限定符
2. 或运算符|
- **(xx|yy) **表示匹配xx或yy
3. 字符类
- **[abc]+ **表示只能匹配包含字母a,b,c的
- **[a-z]+ **表示匹配小写字母
- **[a-zA-Z0-9]+ **表示匹配大小写字母和数字
- **[^0-9]+ **表示匹配非数字字符,包含换行符
4. 元字符
大多数元字符都以反斜杠\开头
- **\d **数字字符=[0-9]
- **\w **单词字符=英文字符+数字+下划线
- **\s **空白符=空格+tab+换行符
- **\D **非数字字符
- **\W **非单词字符
- **\S **非空白字符
- **. **任意字符但不包含换行符
- **^ **匹配行首
- $ 匹配行尾
5. 贪婪匹配,懒惰匹配
- **<.+> **贪婪匹配:匹配第一个左尖括号和最后一个右尖括号中间的所有内容
- **<.+?>**懒惰匹配:匹配每一对尖括号中的内容
6. 举例
- 匹配十六进制的RGB:#[a-f0-9]{6}\b其中\b表明匹配字符的边界
- 匹配IP地址:\b((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
7. 总结
深入学习课程