正则表达式
什么是正则表达式?
利用一些特殊符号的组合去字符串中筛选出符合条件的数据
- 正则表达式是一门独立的语言,跟其他编程语言都没有关系
- 如果想在python代码中使用正则,需要借助于内置模块re
eg:校验手机号
import re phone = input('phone number:') if re.match('^(13|14|15|18)[0-9]{9}$',phone_number): print('是合法的手机号码') else: print('不是合法的手机号码')
正则表达式-字符组
特征是使用中括号括起来,字符串默认只能单个单个字符匹配
[0123456789] 匹配0到9之间任何一个数字
可以简写为
[0-9]
[a-z] 匹配小写字母a到字母z其中任意一个字母
[A-Z] 匹配大写字母A到字母Z其中任意一个字母
[a-zA-Z0-9] 匹配所有的数字、大写、小写字母
正则表达式-特殊符号
特殊符号默认也只能单个单个字符匹配
. 匹配除换行符以外的任意字符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结尾
"""^与$组合使用可以精准限制要查找的数据"""
a|b 匹配字符a或字符b
() 匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配单纯的分组而已)
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
正则表达式-量词
1.表达式在没有量词修饰的情况下 都是单个单个匹配
2.量词必须结合(字符串、特殊符号等)一起使用,不能单独出现
3.量词只能影响前面的一个表达式(ab+ 只能影响b)
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
待匹配的字符串:<script>123</script>
正则表达式
<.*> 默认贪婪匹配 尽可能多的匹配
匹配结果:<script>123</script>
将贪婪变为非贪婪 只需要在量词的后面加问号即可
<.*?> 非贪婪匹配 尽可能少的匹 结束条件有左右两边决定
匹配结果:<script>

浙公网安备 33010602011771号