Python正则表达式学习之match和search的实例
程序员文章站
2022-07-06 14:26:49
怎么使用,怎么返回什么
import re
if __name__ == '__main__':
bt = 'bat|bet|bit'...
怎么使用,怎么返回什么
import re if __name__ == '__main__': bt = 'bat|bet|bit' m = re.match(bt, 'bet') if m is not None: result = m.group() print(result) m = re.match(bt, 'batbet') if m is not None: result = m.group() print(result) m = re.match(bt, 'ggbet') if m is not None: result = m.group() print(result) # 控制台打印出来的结果为: bet bat
从上面的信息来看,python的 re 模块中的 match方法这种用法只能匹配出字符串开始是否包含指定的部分,而且只读取返回的结果只有一条数据,不知道大家理解了没有,没有理解可以将上面的代码直接复制运行,当然这句话也不完全对,上面代码如果换成这样的话就说的不对了
bt = '(bat).(bet).(bit)' m = re.match(bt, 'batmbetubit') if m is not None: result = m.group(3) print(result)
接下来一起看下 search
bt = 'bit' m = re.search(bt, 'hfgkfkjbit') if m is not None: result = m.group() print(result)
re中的search这个方法的就可以从一整句中查询是否包含需要的部分,而不仅仅的是查找开头有没有
a = "123abc456" print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0)) # 123abc456,返回整体 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1) ) # 123 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2)) # abc print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3)) # 456 print("-"*50) m = "(bet)...(bat)" result = re.search(m, "betljhbat") print(result.group(0)) # 返回整体 print(result.group(1)) # 返回bet print(result.group(2)) # 返回bat
总的来说 match和search的功能绝大部分是相同的,不同的部分在于search是在整体搜索,而match是从开始搜索,其他部分基本相同
上面的例子要注意理解group这个,group是分组的意思,正则里面的小括号表示获取当前的值并返回成元组通过group来获取,一般第一个元素是整体元素也就是整个字符串
推荐阅读
-
python列表操作之extend和append的区别实例分析
-
Android学习之Intent中显示意图和隐式意图的用法实例分析
-
python列表操作之extend和append的区别实例分析
-
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
-
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
-
Android学习之Intent中显示意图和隐式意图的用法实例分析
-
python正则表达式match和search用法实例
-
Python之ReportLab绘制条形码和二维码的实例
-
python正则表达式函数match()和search()的区别详解
-
python人脸识别项目之基础学习(三):矩阵的基本运算 + 张量的阶和形态