正则表达式模块 正则函数★★★★★

本文详细介绍了正则表达式的各种匹配规则,包括预定义字符集如d、w、s等,字符组的使用,贪婪与非贪婪模式,边界符,匹配分组以及正则函数的运用,如search、split、sub等,并提到了正则表达式的修饰符如re.I、re.M和re.S的作用。通过实例解析了正则表达式的实际应用,帮助读者掌握正则表达式的高效使用。
摘要由CSDN通过智能技术生成

### 正则表达式 匹配单个字符

思路:匹配的是什么,匹配多少个
import re
lst = re.findall(正则表达式,要匹配的字符串)
返回列表,按照正则表达式匹配到的内容都扔到列表里
默认从左向右

预定义字符集

\d 匹配数字

lst = re.findall("\d","asdlfkjasdklfjkla_()()*(*(23423sdf4")
print(lst)

\D 匹配非数字

lst = re.findall("\D","asdlfkjasdklfjkla_()()*(*(23423sdf4")
print(lst)

\w 匹配字母或数字或下划线 (正则函数中,支持中文的匹配)

lst = re.findall("\w","sdf&&&s9%%89!!!_你好")
print(lst)

\W 匹配非字母或数字或下划线

lst = re.findall("\W","sdf&&&s9%%89!!!_你好")
print(lst)

\s 匹配任意的空白符 \n \t \r ’ ’

lst = re.findall("\s","  			")
print(lst)

\S 匹配任意非空白符

lst = re.findall("\S" , "  aa 	bb")
print(lst)

\n 匹配一个换行符

strvar = """
xboy 他是一个 神秘男孩 

字符组 必须匹配中括号里列举的字符[]只能取一个 (.)匹配任意字符的一个 除了\n

lst = re.findall("[abc]","oputuopctyauobpt")
print(lst)

print(re.findall('a[abc]b','aab abb acb adb')) # aab abb acb

print(re.findall('a[0123456789]b','a1b a2b a3b acb ayb'))#a1b a2b a3b 

优化: -是一个特殊的字符,代表的是一个范围 0-9 0123456789

print(re.findall('a[0-9]b','a1b a2b a3b acb ayb'))#a1b a2b a3b 

print(re.findall('a[abcdefg]b','a1b a2b a3b acb ayb adb')) #acb adb

优化: [a-g] 如果想要表达所有的26个小写字母[a-z]

print(re.findall('a[a-g]b','a1b a2b a3b acb ayb adb')) #acb adb

print(re.findall('a[ABCDEFG]b','a1b a2b a3b  aAb aDb aYb')) #aAb aDb

优化: [A-G] 如果想要表达所有的26个大写字母[A-Z]

print(re.findall('a[A-G]b','a1b a2b a3b  aAb aDb aYb')) #aAb aDb


print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b')) #aab aAb aWb 	aqb a1b

注意: [0-z] 代表数字 小写 大写 不可以这样写

print(re.findall('a[0-z]b','a@b aab aAb aWb aqba1b')) #aab aAb aWb aqb a1b

print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b

^ 在字符组当中, 代表除了 放到字符组的左边第一个位置

print(re.findall('a[^-+*/]b',"a%b ccaa*bda&bd")) # a%b a&b

如果想要匹配^ 或者 -, 在原来的字符前面加上,让字符的含义失效.r是为了防止转义

lst = re.findall(r"e[\^\-]f","e^f e-f")
print(lst)

匹配 \

lst = re.findall(r"a\\c","a\c")
print(lst)
print(lst[0])

res = re.findall(r'a\\b',r'a\b')
res = re.findall(r'a\\n',r'a\n')
print(res)
print(res[0])

res = re.findall(r"a[\^\\]b",r"a^b a\b")
print(res) # ['a^b', 'a\\b']
print(res[1])

### 正则表达式 多个字符的匹配

import re

量词练习

'''1) ? 匹配0个或者1个a '''
print(re.findall('a?b',
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值