正则表达式简介
正则表达式
简介
首先正则表达式不属于任何一门编程语言,是一个独立的学科
作用于数据的筛选与查找及校验
正则表达式本质上就是使用一些符号的组合产生一些特殊的含义
然后去字符串中筛选除符合条件的数据
正则表达式线上测试网址:http://tool.chinaz.com/regex/
正则表达式之字符组
字符组在没有量词修饰的情况下一次只会针对一个数据值
| [0-9] | 匹配0到9之间的任意一个数字(包括0和9) | 全称是:[0123456789] |
|---|---|---|
| [A-Z] | 匹配A到Z之间的任意一个字母(包括A和Z) | 全称是;[ABCDEF....WXYZ] |
| [a-z] | 匹配a到z之间的任意一个字母(包括a和z) | 全称是;[abcdef.....wxyz] |
在中括号内编写的多个数据值彼此都是或的关系
[0-9a-zA-z],数字、小写字母、大写字母都可以
正则表达式之特殊符号
特殊符号在没有量词修饰的情况下一个特殊符号一次只会针对一个数据值
| 特殊符号 | 作用 |
|---|---|
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母、数字、下划线 |
| \W | 匹配非字母、数字、下划线 |
| \d | 匹配数字 |
| ^ | 匹配字符串的开头 |
| $ | 匹配字符串的结尾 |
| a|b | 匹配字符a或b |
| () | 给正则表达式分组,不影响正则表达式的匹配 |
| [] | 匹配字符组中的字符 |
| [^] | 匹配处理字符组中字符的所有字符 |
正则表达式之量词
在正则表达式量词中所有的量词默认的都是贪婪匹配。
量词不能单独使用,必须跟在表达式的后面,并且只能影响紧挨着的左边那一个
| 量词符号 | 作用 | ||
|---|---|---|---|
| * | 重复零次或者等多次(默认就是尽可能最多) | ||
| + | 重复一次或者更多次(默认尽可能多) | ||
| ? | 重复零次或者一次(默认就是一次) | ||
| 重复n此 | |||
| 重复n次或者更多次 | |||
| 重复n到m次 |
贪婪匹配、非贪婪匹配
所有的量产默认的都是贪婪匹配,但是如果量词的后面紧跟一个问好。
那么就会变成非贪婪匹配
我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.*或者.*?
并且结束的标志洋浦上述符号左右俩边添加的表达式决定
待匹配的文本:<script>alert(123)</script>
正则表达式:<.*> # 贪婪匹配
上述正则匹配出来的内容是:<script>alert(123)</script>
正则表达式:<.*?> # 非贪婪匹配
上述正则匹配出来的内容是:<script> </script>
正则表达式之取消转义
正则表达式中取消斜杠与字母的特殊含义,就是在斜杠面前在加一个斜杠
每个斜杠只能取消一个斜杠的意义。
\\n \n
\\\\n \\n
在python中有更加简便的写法
r'\n'
r'\\n'
正则表达式常见方法
编写校验用户手机号的正则
0?(13|14|15|17|18|19)[0-9]{9}
编写校验用户身份证的正则
\d{17}[\d|x]|\d{15}
编写校验用户邮箱的正则
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
编写校验用户qq号的正则
[1-9]([0-9]{5,11})
"""
常见的正则百度查找即可 我们需要做到的时候能够看到别人写的
能够完成基础的修改即可
"""

浙公网安备 33010602011771号