python正则表达式之re模块方法

以下内容为从慕课网听来的,记下笔记,以便以后查用。

1.search(pattern, string, flags=0) 在一个字符串中查找匹配(查找第一次出现的位置)

2.findall(pattern, string, flags=0) 找到匹配,返回所有匹配部分的列表

3. sub(pattern, repl, string, count=0, flags=0) 将字符串中匹配正则表达式的部分替换为其他值

4.split(pattern, string, maxsplit=0, flags=0) 根据匹配分割字符串,返回分割字符串组成的列表

1. 查找第一个出现的位置,类似于string 的 find方法,不过后者是查找固定子串

str1 = 'imooc videonum = 1000'

str1.find('1000') # 固定子串

info = re.search(r'\d+', str1) # 正则方法,可以查找任意数字

info.group() # '1000'

2.findall 方法讲解

str2 = 'C++=100, java=90, python=80'

info = re.search(r'\d+', str2)

info.group() # 100 ,只返回一个匹配值,而我们想查找所有时长,就要用到findall()了

info = re.findall(r'\d+', str2)

info.group() # ['100', '90', '80'],求和很容易了

3.pattern为正则表达式,repl可为字符串,可为函数返回的字符串,string被替换字符串,count是对替换的限制,flags为re模块的标志

eg:

str3 = 'imooc videonum = 1000'

info = re.sub(r'\d+', '1001', str3)

info: 'imooc videonum = 1000'

思考:如果最后的数字变了,最后数字加1如何处理?

方法:repl定义为一个函数,匹配到的对象传入repl定义的函数中

def add1(match):

    val = match.group()

    num = int(val) + 1

    return str(num)

info = re.sub(r'\d+', add1, str3)

info: 'imooc videonum = 1001'

解释:先将正则表达式去匹配string,然后把匹配到的match 对象作为参数传入add1

4. split比字符串分割更灵活

str4 = 'imooc:C C++ Java Python' # 将4个种类分割开

re.split(r':| ', str4) # 比字符串方便

str4 = 'imooc:C C++ Java, Python'

re.split(r':| |,', str4)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值