前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >六、python学习笔记-模块-正则模块(二)

六、python学习笔记-模块-正则模块(二)

原创
作者头像
堕落飞鸟
发布2022-01-13 14:02:46
3050
发布2022-01-13 14:02:46
举报
文章被收录于专栏:飞鸟的专栏

正常模块常用使用实例

代码语言:javascript
复制
# 引入模块
import re

# 完全匹配
# 完全匹配没有必要使用正则,可以直接使用字符串方法
r1 = re.findall('abc', 'agduyjgasjaljklaabcsdc')
print(r1)

# 模糊匹配
# 通配符‘.’:代指任意一个字符(除了换行符),一个‘.’只能匹配一位。
r2 = re.findall('a.c', 'agduyjgasjaljklaabcsdc')
print(r2)

# ‘^’:以指定字符开头。
r3 = re.findall('^a.c', 'abcgduyjgasjaljklaabcsdc')
print(r3)

# ‘$’:以指定字符结尾。
r4 = re.findall('a.c$', 'agduyjgasjaljklaabcsdcabc')
print(r4)

# ‘*’:重复匹配,重复前面字符多次(包括0)
# 会取出a开头c结尾,中间是b,但是无论中间有多少b(包括0)都会被取出。
r5 = re.findall('ab*c', 'agduyjgasjacljklaabbcsdcabc')
print(r5)

# 取出a开头,c结尾,无论中间有什么有多少字符(包括0)
r6 = re.findall('a.*c', 'agduyjgasjaljklaabbcsdcabc')
print(r6)

# ‘+’:重复匹配,重复前面字符多次(最少有1个)
# 会取出a开头c结尾,中间是b,但是无论中间有多少b(包括0)都会被取出。
r7 = re.findall('ab+c', 'agduyjgasjacljklaabbcsdcabc')
print(r7)

# ‘?’:重复匹配,重复前面字符多次(0次或1次)
# 会取出a开头c结尾,中间是b,取出b(0次货1次)都会被取出。
r8 = re.findall('ab?c', 'agduyjgasjacljklaabbcsdcabc')
print(r8)

# ‘{}’重复匹配,重复前面字符多次(重复几次自己定义,可以指定范围)
# 会取出a开头c结尾,中间是b,取出b(2次)都会被取出。
r9 = re.findall('ab{2}c', 'agduyjgasjacljklaabbcsdcabc')
print(r9)

# 会取出a开头c结尾,中间是b,取出b(自己定义次数,可以指定范围)都会被取出。
r10 = re.findall('ab{0,2}c', 'agduyjgasjacljklaabbcsdcabc')
print(r10)

# 字符集‘[]’:代表范围,并取消里面元字符的功能(^\-例外)
# 会取出a开头c结尾,中间是b或d(2选1),可以指定范围)都会被取出。
r11 = re.findall('a[b,d]c', 'agduyjgasjadcljklaabbcsdcabc')
print(r11)

# [a-z]代表所有小写字母(选择1个),[1-9]代表数字范围,[A-Z]代表所有大写字母
r12 = re.findall('a[a-z]c', 'agduyjgasjadcljklaabbcsdcabc')
print(r12)

# [*]只代表‘*’,不再有元字符含义
r13 = re.findall('a[b,*]c', 'agduyjgasja*cljklaabbcsdcabc')
print(r13)

# [^]:取反,所有在[]里面的字符不会被匹配
r14 = re.findall('a[^b]c', 'agduyjgasjadcljklaabbcsdcabc')
print(r14)

# ‘\’:后面跟元字符去除元字符特殊含义,后面跟普通字符实现特殊含义。
# 后面跟元字符去除元字符特殊含义,‘*’只表示‘*’本身。
r15 = re.findall('a\*c', 'agduyjgasja*cljklaabbcsdcabc')
print(r15)

# 后面跟普通字符实现特殊含义。
# 匹配11个连续数字
r16 = re.findall('\d{11}', 'agduyjgasja*cljkla12312212411')
print(r16)

# ‘()’:分组,将‘()’作为一个整体
r17 = re.findall('(ab)+', 'agduyjgasjababcljklaabbcsdcabc')
print(r17)

# ‘|’:或关系
r18 = re.findall('(ab)|c', 'agduyjgasjababcljklaabbcsdcabc')
print(r18)

# r'':表示该字符串中的内容在python解释器中没有特殊含义,但是其正则含义仍然生效
# \b在python和正则中都有特殊含义,我们只想要在正则中的特殊含义,不想要在python解释器中的特殊含义
print(re.findall(r'I\b', 'I am abc'))

# 贪婪匹配,尽量多的匹配
r19 = re.findall('abc*', 'abcccccccc')
print(r19)

# 惰性匹配,尽量少的匹配
r20 = re.findall('abc*?', 'abcccccccc')
print(r20)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档