python 正则

'''
python中re正则模块
实现一个编译查找,一般在日志处理或者文件处理时用的比较多
正则表达式主要用于模式匹配和替换工作。
预定义字符集匹配:
    \d:数字0-9
    \D:非数字
    \s:空白字符
    \n:换行符
    \r:回车符
    re模块数量词匹配:
        符号^:表示的匹配字符以什么开头符号
        $:表示的匹配字符以什么结尾
        符号*:匹配*前面的字符0次或n次
        eg: ab*能匹配a匹配ab 匹配abb符号
        +:匹配+前面的字符1次或n次
        符号?:匹配?前面的字符0次或1次
        符号{m}:匹配前一个字符m次
        符号{m, n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是正整数'
'''
import re

# 1.match函数....从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败并报错
str1 = re.match('^2\D{1,3}$', '2#khhfhgssgfgfdfs4353kjhhj')  # 报错﹑结尾1-5个非数字结尾
str2 = re.match('^2\D{1,3}$', '2hhj')

# print(str1.group())     #通过group 函数把结果显示出来
print(str2.group())

# 2.search函数....从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
str_serach1 = re.search('\d+', '239khhfhgssgfgfdfs4353kjhhj')  # 可以穿透一次,从第二次开始匹配―239
str_serach2 = re.search('\d*', 'a239khhfhgssgfgfdfs4353kjhhj')  # 为空︰0次开始
print(str_serach2.group())
print(str_serach1.group())

# 3.findall函数            从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个列表[]
str1 = re.findall('\d', '239khhfhgssgfgfdfs4353kjhhj')  # ['2', '3', '9', '4', '3', '5', '3']
str1 = re.findall('\d+', 'a239khhfhgssgfgfdfs4353kjhhj')  # ['239', '4353']
str1 = re.findall('\D+', 'a239khhfhgssgfgfdfs4353kjhhj')  # ['a', 'khhfhgssgfgfdfs', 'kjhhj']
str1 = re.findall('error', 'aerrorkhhfhgssgerrorfs4353kjhhj')  # ['error', 'error']
str1 = re.findall('error', 'a239khhfhgssgfgfdfs4353kjhhj')  # []
str1 = re.findall('dcs()dcs',
                  'dcs239khhfhgssgfgfdfs4353kjhhjdcs')  # []  dcs()dcs中的括号不会匹配前后的内容,只会匹配括号里面的内容  注意:碰到小括号只会匹配小括号里面的内容
str1 = re.findall('dcs(.+)dcs',
                  'dcs239khhfhgssgfgfdfs4353kjhhjdcs')  # .+匹配任意字符 是0次n次 ,dcs之间所有内容  ['239khhfhgssgfgfdfs4353kjhhj']
print(str1)

# 4.compile函数  编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]
str1 = re.compile('error')

str2 = str1.findall('aerrorkhhfhgssgerrorfs4353kjhhj')
print(str2)  # ['error', 'error']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值