01语言基础-正则表达式20220505

01语言基础
正则表达式
01正则表达式

正则表达式: 解决字符串问题的工具(让复杂的字符串问题变得简单的一个工具)

02匹配类符号

from re import fullmatch
2.1.re模块
re模块是python用来支持正则表达式的一个模块
re模块中提供了各种和正则相关的函数:fullmatch,search,findall,match,split,sub等等
fullmatch(正则表达式,字符串) - 判断整个字符串是否完全符合正则表达式描述的规则,如果不符合返回的是None
python中提供正则表达式的方式:r’正则表达式’
2.2.匹配类符号 - 一个正则符号表示一类字符
匹配类符号在正则中的作用:用来要求字符串中某个位置必须是什么样的字符
1)普通符号 - 在正则表达式中表示这个符号本身,对应字符串中的字符的要求就是符号本身
2). -匹配任意一个字符
3)\d - 匹配一个任意数字
4) \s -匹配任意空白字符(空白字符包括:空格、\n,\t,\r)
5) \w - 匹配任意一个数字、字母或者下划线或者中文
6)\大写字母 - 与相应的小写字母的功能相反
\D - 匹配一个非任意数字
\S - 匹配任意非空白字符
\W -匹配任意一个非数字、字母或者下划线或者中文
7)[字符集] - 匹配字符集中任意一个字符(注意:一个[]只能匹配一个字符)
[多个普通符号] - 例如[zxc12],在五个中任意匹配一个
[包含\开头语的特殊符号]
[字符1-字符2] - 例如 ‘’‘[a-z][a-zA-Z][1-9a-z][\u4e00-\u9fa5]’‘’
注意:[]中如果-不在[]里面,则是普通符号
8)[^字符集] - 匹配不在字符集中的任意一个字符

03匹配次数

3.1 * - 匹配0次或者多次(任意次数)
3.2 + - 匹配1次或者多次(至少1次)
3.3 ? - 0次或1次
3.4 {}
{N} - N次
{M,N} - M到N次
{M,} - 至少M次
{,N} - 最多N次
* == {0,}
+ == {1,}
? == {0,1}
3.5 贪婪和非贪婪
在匹配次数不确定的时候,匹配模式分为贪婪和非贪婪,默认是贪婪
匹配次数不确定: * + ? {M,N} {M,} {,N}
贪婪和非贪婪:在次数不确定的情况下,对应的字符串在不同次数下有多中匹配结果,贪婪取最多次数对应的结果(前提匹配成功)非贪婪取最少次数对应的结果
贪婪:* + ? {M,N} {M,} {,N}
非贪婪:*? +? ?? {M,N}? {M,}? {,N}?

04分组和分支

4.1 分组 - ()分组就是在正则中用括号将正则中的部分内容括起来就形成一个分组
1)整体操作
2)重复:在正则中:\N 可以重复\N 所在的位置的前面的第N个分组匹配到的内容
3)捕获 - 获取正则匹配结果中的部分内容
4.2 分支
正则1|正则2 - 先用正则1匹配,如果成功就成功,如果匹配失败,就用正则2匹配

05检测类符号和转义符号

5.1检测类符号-检测类符号不是匹配符号,不会要求某个位置必须是什么样的字符,而是用来检测某个文字是否符合相关要求
1)\b - 检测是否是单词边界
单词边界 - 凡是可以用来将两个单词区分开的符号,例如:空白字符、标点符号、字符串开头和结尾
2)\B - 检测是否是非单词边界
3)^ - 检测是否是字符串开头([]外面)
4)$ - 检测是否是字符串结尾
5.2 转义符号
正则中的转义符号是指在本身就具备特殊功能的符号前加\,让它本身具备的特殊功能消失变成普通符号
补充:独立存在有特殊意义的符号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值