Python3笔记025 - 5.4 使用re模块实现正则表达式操作

5.4 使用re模块实现正则表达式操作

5.4.1 匹配字符串

1、使用match()方法进行匹配

match()方法从字符串的开始处进行匹配,如果在起始位置匹配成功,则返回Match对象,否则返回None

re.match(pattern, string, [flags])
# 最长匹配
import re
re.match('L.*n', 'Learn Python').group()
output:'Learn Python'
# 最短匹配
import re
re.match('L.*?n', 'Learn Python').group()
output:'Learn'

2、使用search()方法进行匹配

search()方法不一定从字符串的起始位置开始匹配,其他位置有符合的匹配也算匹配成功。

re.search(pattern, string, [flags])
import re
re.match('P.*?n', 'Learn Python').group()
output:'Python'

3、使用findall()方法进行匹配

findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,匹配成功返回列表,否则返回空列表。

re.findall(pattern, string, [flags])
import re
s = 'Learn Python'
mlist = re.findall('.n',s)
output:['rn', 'on']

5.4.2 替换字符串

sub方法用于实现字符串替换,

re.sub(pattern, rep1, string, count, flags)
# 隐藏中奖信息中的手机号码
import re
pattern = r'1[34578]\d{9}'
string = '中奖号码为:84978981 联系电话为:13611111111'
result = re.sub(pattern,'1XXXXXXXXXX',string)
print(result)
output:
中奖号码为:84978981 联系电话为:1XXXXXXXXXX

5.4.3 使用正则表达式分割字符串

re.split(pattern, string, [maxsplit], [flags])
import re
pattern = r'[?|&]'
url = 'http://www.baidu.com/login.jsp?username="baidu1"&pwd="baidu1"'
result = re.split(pattern,url)
print(result)
output:
['http://www.baidu.com/login.jsp', 'username="baidu1"', 'pwd="baidu1"']
posted @ 2020-07-09 06:39  测试工匠麻辣烫  阅读(177)  评论(0编辑  收藏  举报