Python正则表达式用法简介

正则表达式介绍

在编程中,字符串是涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

(1)re.match函数
re.match 字符串的起始位置开始匹配,若匹配失败则返回None

import re

tail = 'hello world'
red = re.match(r'\w',tail)
print(red.group())

ret = re.match(r'\d',tail)
print(ret)

效果图:


(2)re.search方法
re.search 匹配整个字符串,并且返回第一个匹配成功的值

import re

tail = 'hello world 123'
ret = re.search(r'\d+',tail)
if ret != None:
    print(ret.group())
else :
    print('匹配失败!')

效果图:

 


(3)findall()
在字符串中找到所有符合正则表达式的的子串,并组成一个列表返回,若无结果,则返回一个空列表

import re

tail = 'hello world'
ret = re.findall(r'[a-zA-Z]+',tail)
print(ret)
red = re.findall(r'\d',tail)
print(red)

效果图:

 


(4)split()
按照能够匹配的子串将字符串分割后返回列表(例子:按多个数字分割)

import re

tail = 'hel123lo456wor789ld'
red = re.split(r'\d+',tail)
print(red)

效果图:

 


(5)sub()
类似于字符串的split(),将字符串按照匹配到的内容进行切分,并且替换成指定的内容

import re

tail = 'hel123lo45wor7ld'
red = re.sub(r'\d+','*',tail)
print(red)

效果图:

 


匹配模式
(1)忽略大小写,re.I

import re
temp = 'Hello World'
res = re.compile(r'hello world',re.I)
red = res.match(temp).group()
print(red)

效果图:

 

 

(2)多行匹配, re.M

import re
# 多行模式re.M和^
tail = '''first row1
second row2
third row3
'''
res = re.compile(r'^\w+',re.M)
red = res.findall(tail)
print(red)

# 多行模式re.M和$
tail = '''first row1
second row2
third row3
'''
res2 = re.compile(r'\w+$',re.M)
red2 = res2.findall(tail)
print(red2)

效果图:

 

(3)匹配任意多行,包括换行符,re.S

import re

tail = '''first row1
second row2
third row3
'''
res = re.compile(r'.+',re.S)
red = res.findall(tail)
print(red)

效果图:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值