re正则模块

一、正则元字符

字符含义
|逻辑或
.匹配任意一个字符
*匹配前边的字符出现0次或者任意次
+匹配前边的字符出现1次或者任意次
匹配前边的字符出现0次或1次
.*匹配任意字符
^匹配以某字符或者字符串开头
$匹配以某字符或者字符串结尾
[]匹配集合中的任意一个
[^]匹配除了集合中的内容
\d匹配任意数字字符
\D匹配任意非数字字符
\w匹配任意普通字符。指:数字、字符、下划线、汉字
\W匹配任意非普通字符
\s匹配空字符 指:空格 \r \n \t \f \v
\S匹配非空字符
\b匹配单词边界

1.r的含义

r的含义是让字符串原样输出

2.没有r的字符串

data = "hello \nworld"
print(data)

结果如下:

hello 
world

3.有r的字符串

data = r"hello \nworld"
print(data)

结果如下

hello \nworld

4.r对正则的影响

目前来讲r 对\b 是有影响的。如果在表达式前不加r,表达式中的\b是不起作用的。

import re
data = "123 zhang456san num789 111lisi"

res = re.findall(r"\b\d+\b",data)
print(res)

二、re模块的常用方法

模块名称作用
re.match()从字符串的起始位置开始匹配模式。
re.search()扫描整个字符串,返回第一个成功的匹配。
re.findall()查找字符串中所有匹配模式的子串,并返回一个列表。
re.sub()替换配置的字符串

1.re.match

从字符串的开始进行匹配

import  re

data = "张无忌 周芷若 赵敏 张无忌2 灭绝师太 周芷若 白眉鹰王 金毛狮王"

res = re.match('周芷若',data)
if res:
    print(res)
    print(res.group())
else:
    print(res)
    print("匹配失败")

结果如下:

None
匹配失败

2.re.search

import  re

data = "张无忌 周芷若 赵敏 张无忌2 灭绝师太 周芷若 白眉鹰王 金毛狮王"

res = re.search('周芷若',data)
if res:
    print(res)
    print(res.group())
else:
    print(res)
    print("匹配失败")

结果如下:

<re.Match object; span=(4, 7), match='周芷若'>
周芷若

3.re.findall

import  re

data = "张无忌 周芷若 赵敏 张无忌2 灭绝师太 周芷若 白眉鹰王 金毛狮王"

res = re.findall('周芷若',data)
if res:
    print(res)
else:
    print(res)
    print("匹配失败")

结果如下

['周芷若', '周芷若']

4.re.sub

import  re

data = "张无忌 周芷若 赵敏 张无忌 灭绝师太 周芷若 白眉鹰王 金毛狮王"

res = re.sub(r'张无忌|...王',"",data)
print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值