python3中re模块有什么用
更新时间:2023-10-02Python3中re模块的作用
Python中的正则表达式模块 —— re, 提供了一套功能强大的正则表达式匹配工具。Python re 模块使 Python 语言拥有了全部的正则表达式功能。
re 模块中有很多方法,它们可以分为三类:
- 匹配:
match()
和search()
方法 - 查找:
findall()
和finditer()
方法 - 替换:
sub()
和subn()
方法
正则表达式匹配方法—— match()
match()
方法将从字符串起始位置匹配一个模式,如果匹配成功,则返回一个匹配对象,否则返回 None 。
import re
# 字符串
line = "Cats are smarter than dogs"
# 简单匹配:检查开头是'Cats'的行
# 匹配对象
matchObj = re.match( r'Cats', line, re.I)
if matchObj:
print("match --> matchObj.group() : ", matchObj.group())
else:
print("No match!!")
正则表达式匹配方法—— search()
search()
方法用于在字符串中搜索匹配正则表达式的第一个位置,返回match对象。如果匹配成功则返回匹配对象,否则返回None。
import re
# 字符串
line = "Cats are smarter than dogs"
# 搜索匹配的第一个位置
searchObj = re.search( r'smarter', line, re.M|re.I)
if searchObj:
print("search --> searchObj.group() : ", searchObj.group())
else:
print("Nothing found!!")
正则表达式查找方法—— findall()
findall()
方法在字符串中查找正则表达式匹配的所有子串,并返回一个列表。
import re
# 字符串
line = "Cats are smarter than dogs"
# 查找所有小写字母单词。
pattern = r'\b[a-z]+\b'
matchObj = re.findall(pattern, line, re.M|re.I)
print("findall --> matchObj : ", matchObj)
正则表达式替换方法—— sub()
sub()
方法用于替换字符串中的匹配项,返回替换后的字符串。
import re
# 字符串
phone = "2004-959-559 # 这是一个电话号码"
# 删除注释
num = re.sub(r'#.*$', "", phone)
print("sub --> Phone Num : ", num)
# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print("sub --> Phone Num : ", num)