字符
预定义的字符集
数量
- “*” 0~无限
- “+” 1~无限(找到的数量,不局限于只对找到的第一个找到元素进行操作)
- {m} m次
- {m,n} m~次
- ? 前一个字符0或者1次
常见的用法
Serarch() 找一个 Match() 从头开始找 Fidall() 找全部 Sub() 替换 Compile 编译
import re
from typing import Container
# re.compile()匹配函数?
# 可以实现更有效率的匹配。https://www.cnblogs.com/python-xiaopang/p/8984034.html
str_1 = '''
asdfecgvserbvADFGEHRA
SF1861ASLKNMLJKasab'''
# compile的用法
# 写法1
# container = re.compile('a(.*)b',re.DOTALL)
# print(container.findall(str_1))
# 写法2 S=DOTALL
# print(re.findall(r'a(.*)b',str_1,re.S))
# r的用法 保证原生字符串输出
# str_two = r'c:a\b'
# print(str_two)
# 数字的匹配 注意坑:配合我们的开始和结束
# str_th = '564168519479'
# container = re.compile(r'^\d+$')
# print(container.match(str_th).group())
# 中文的匹配
# str_cn = '阿斯顿发文 对的 hello sdf 大公司'
# container = re.compile('[\u4e00-\u9fa5]+')
# print(container.findall(str_cn))
# 替换
# str_other = 'chuang_ke_xue_yuan'
# container = re.compile('_')
# print(container.sub('',str_other))
# 切割 split
str_sp = '1,a,g.,;;sd,e,f'
container = re.compile('[,;]+')
print(container.split(str_sp))
|