re正则表达式

本文介绍了正则表达式的多种规则,包括原子表、任意匹配元字符、边界限制元字符等。还阐述了贪婪和懒惰模式,以及常见函数如re.match()、re.search()、re.compile()、re.sub()等的用法和功能,并通过实例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式通用字符
原子表:
[xyz]abc,其中x,y,z是平行关系,即xabc,yabc,zabc都可以是匹配结果
[^]表示除了中括号内的元素以外都能匹配

在这里插入图片描述
任意匹配元字符:.
边界限制元字符:^,$
限定符:*,?,+,{n},{n,},{n,m}
模式选择符:|,a|b时a和b都可以作为匹配模式
模式单元符:将一些原子组合成大原子使用
在这里插入图片描述
使用“re.符号”的方式作为参数加入到函数中
贪婪模式:尽可能多的匹配,". "
懒惰模式:尽可能少的匹配,且为就近匹配,".
?"

常见函数:
1.re.match()函数:
从起始位置开始匹配,如果一开始就匹配不了,直接返回None

re.match(pattern,string,flag)
pattern:表达式
string:源字符
flag:标志位,放模式修正符

2.re.search函数:
在全文中匹配,如果全文都匹配不了,再返回None

re.search(pattern,string,flag)
pattern:表达式
string:源字符
flag:标志位,放模式修正符

3.re.compile()函数:
全局匹配:将满足匹配的所有结果都提取出来
方法:

  1. 使 用 re.compile() 对 正 则 表 达 式 进 行 预 编 译 。
  2. 编 译 后 , 使 用 findall() 根 据 正 则 表 达 式 从 源 字 符 串 中 将 匹 配 的 结 果 全 部 找 出 。
    我 们 可 以 通 过 以 下 实 例 更 好 地 理 解 :
import re
string = "hellomypythonhispythonourpythonend"
pattern = re.compile(".python.")# 预 编 译
result = pattern.findall(string)# 找 出 符 合 模 式 的 所 有 结 果
print (result)

4.re.sub()函数:
替换字符串,返回替换后的字符串
re.sub(pattern,rep, string ,max )
其中,第一个参数为对应的正则表达式,第二个参数为要替换成的字符串,第三个参数
为源字符串,第四个参数为可选项,代表最多替换的次数,如果忽略不写,则会将符合模式
的结果全部替换。

使用re.sub()这个函数,会根据正则表达式pattern,从源字符串string查找出符合模式
的结果,并替换为字符申rep,最多可替换max次。

实例:
1.匹配网址:


import re
pattern = "[a-ZA-Z]+://[^\S]*[.com|.cn]"
string = "<a href="http://www.baidu.com">百度首页</a>"
result = re.search(pattern,string)
print(resu1t)
首先,"://"是固定的,可以写出来,然后我们要以.com或者.cn结尾,所以正则表达式
的最后应该是[.coml.cn],":/"[.coml.cn]之间,不能现空格,所以我们可以写为[^\s]*,":/"之前,必须要有内容,所以此时至少要有一次重复,故而我们用"+"而不用"*",
这些内容可以是任意的字母的组合,包括大小写,所以可以写为[a-zA-Z],组合起来,
正则表达式就是:"[a-ZA-Z]+://[^\S]*[.com|.cn]"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值