正则表达式
-
你可以把它当作是通配符的增强版,他所做的事情就是去帮你匹配指定规则的字符串
-
它在计算机中的应用非常广泛
- 平时编辑器中的词法分析器,会使用正则表达式去匹配代码中的关键字
- 网站中注册表单会用到正则表达式去判断密码的复杂程度
- 在爬虫中,我们同样可以使用正则表达式中提取我们需要的信息
-
在线测试工具
-
工具使用: 上方填写正则表达式,下方写要去匹配的文字
1.限定符
- ?:前面的字符需要出现零次或一次
- *:前面的字符出现0次或多次
- +:前面的字符出现一次以上
- {n} 前面的字符出现n次
- {m,n}前面的字符出现m次到n次
- 如何匹配多个字符,把字符括起来,作为一个整体
2.或运算
- | 优先级比较低 ,注意括号()的运用,()内的内容优先运算
3.字符类
- [一些字符] :单个字符,这个字符是"一些字符"里面的字符
- [一些字符]+ :就是一个字符串这个字符串的所有字符都可以在"一些字符"中找到
- 也就是[一些字符]这个出现一次以上
- 这个一些字符可以指定范围,例如:a-z A-Z 0-9
- ^非 :[^一些字符]:单个字符,这个字符不是"一些字符"里面的字符
4.元字符
- 正则表达式中,为我们预先定义好了一系列常用的字符类型,比如数字空白符,单词开头结尾
- \d 数字字符
- \w 单词字符,包括英文,数字以及下划线
- \s 空白符,它同时包含tab字符(制表符)以及换行符
- \D 非数字字符
- \W 非单词字符
- \S 非空白字符
- . 任意字符但不包含换行符
- ^匹配行首 :匹配行首的a: ^a
- 匹 配 行 尾 : 匹 配 行 尾 的 a : a 匹配行尾 :匹配行尾的a: a 匹配行尾:匹配行尾的a:a
5.贪婪与懒惰匹配
- 看一下这个例子
你想匹配一下,但是这个 .+ 把除去首尾的< > 的其他字母全部匹配了,这我门可以称为贪婪匹配
- 但是我们修改一下正则表达式
可以看他他匹配了两个结果,这就是懒惰匹配,上面提到过?是前面的字符匹配0次或1次,可以看到?的意思是少点比较好,这样说便于我们记住这个?
6.总结
7.正则表达式学习推荐网址
deerchao的文章
本文参考视频教程:10分钟快速掌握正则表达式