Python中的正则表达式库`re`提供了丰富的功能来处理字符串中的模式匹配和搜索替换。在本篇文章中,我们将深入探讨`re.match`, `re.search`以及`re.sub`这三个核心函数的用法。 `re.match(pattern, string, flags=0)`函数用于尝试从字符串的起始位置匹配一个模式。如果起始位置匹配成功,它会返回一个匹配对象,否则返回`None`。`pattern`参数是你要匹配的正则表达式,`string`是你要在其中寻找匹配的字符串,而`flags`则可以设置一些匹配选项,例如是否区分大小写、多行匹配等。例如: ```python import re print(re.match('www', 'www.runoob.com').span()) # 输出 (0, 3) print(re.match('com', 'www.runoob.com')) # 输出 None ``` 这里`re.match()`只检查字符串开始是否符合模式,因此第二个例子中,'com'不在起始位置,所以返回`None`。 `re.search(pattern, string, flags=0)`与`re.match()`类似,但它会扫描整个字符串以找到第一个匹配项。如果找到匹配项,它会返回一个匹配对象;否则返回`None`。这与`re.match()`的区别在于,`re.search()`会在整个字符串中查找,而不局限于起始位置: ```python print(re.search('www', 'www.runoob.com').span()) # 输出 (0, 3) print(re.search('com', 'www.runoob.com').span()) # 输出 (11, 14) ``` 在这个例子中,'com'在字符串的中间被找到,所以`re.search()`返回了匹配结果。 `re.sub(pattern, repl, string, count=0, flags=0)`用于在字符串`string`中查找所有与`pattern`匹配的子串,并用`repl`进行替换。`repl`可以是一个字符串或者一个函数,`count`参数可以限制替换的次数,默认值为0表示替换所有匹配项。例如: ```python import re phone = "2004-959-559#" num = re.sub(r'#.*$', "", phone) # 删除字符串中的 Python注释 print("电话号码是: ", num) # 输出 "电话号码是: 2004-959-559" num = re.sub(r'\D', "", phone) # 删除非数字(-)的字符串 print("电话号码是 : ", num) # 输出 "电话号码是 : 2004959559" ``` 在这个例子中,`re.sub()`将字符串中的所有非数字字符移除。 正则表达式模式的描述: - `^`匹配字符串的开头 - `$`匹配字符串的末尾 - `.`匹配任意字符(除换行符),`re.DOTALL`模式下可匹配包括换行符的任意字符 - `[abc]`匹配'a', 'b'或'c' - `[^abc]`匹配除'a', 'b'和'c'之外的任何字符 - `*`匹配前面的表达式零次或多次 - `+`匹配前面的表达式一次或多次 - `?`匹配前面的表达式零次或一次 - `{n}`精确匹配前面表达式n次 - `{n,}`匹配前面表达式n次或更多次 - `{n,m}`匹配前面表达式n到m次 - `(re)`表示一个捕获组 - `(?:re)`非捕获组 - `(?imx)`开启局部的i, m, 或 x标志 - `(?-imx)`关闭局部的i, m, 或 x标志 - `(?=re)`前向肯定界定符,用于预查 - `(?!re)`前向否定界定符,用于反查 - `(?>re)`独立匹配模式,防止回溯 - `\w`匹配字母数字及下划线,等同于`[A-Za-z0-9_]` - `\W`匹配非字母数字及下划线,等同于`[^A-Za-z0-9_]` - `\s`匹配任意空白字符,等同于`[\t\n\r\f]` - `\S`匹配任意非空字符 这些正则表达式模式和函数结合使用,可以帮助我们高效地处理和分析字符串数据,实现强大的文本处理能力。





















- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 农村金融信息化进程.pptx
- 电脑网络监控管理软件家庭豪华版V.doc
- 互联网+背景下的小学数学高效课堂构建策略.doc
- 综合布线系统方案6类.doc
- 人工智能对现代政治的影响.docx
- matlab课程设计版.doc
- 网络经济下财务管理模式的构建.doc
- 浅析工程项目管理.docx
- 试分析会计审计风险因素及信息化审计对策.docx
- CAD对象等分综合练习一.doc
- 及三计算机国二c语言个别考题分析研究.doc
- 基于小黄人对象的单目标检测实例分析
- 中国互联网络发展状况调查统计报告.doc
- 循环经济与低碳经济网络培训考试答案(8页).doc
- 基于单目标检测技术实现小黄人识别的案例解析
- 移动通信基站综合防雷设计方案.doc



- 1
- 2
前往页