昨天是我第一天学正则表达式,遇到了一点问题没解决,今天回过头来想不断试代码,其实很简单,跟我一起学~
基础知识:
图片讲解:
1.一般会写是以什么模式去进行match和search的搜索
2.match:从头开始匹配,匹配一个对象,如果开头是pattern的模式,找到了就返回,没有找到就None,不再继续进行下去
search:从头开始匹配,匹配一个对象,如果开头没有符合的往后匹配,直到找到一个为止,匹配到最后没有找到就None
3.group得到匹配结果
注意:
1.match搜索的只是开头的位置,search搜索的整个字符串
2.两者都只匹配一个对象(我一开始傻乎乎的以为search找多个)
例子剖析:
为了方便讲解,我在这里打了序号1-5,接下来我说数字几就是对应代码,看清楚了哈~
1.我们先要导入re模块,不然后面操作是执行不了的
2.输入字符串,定义为input3
3.这里涉及到一个知识点,命名的问题,如图(为了配合讲解用的,看一眼就会了):
.
先定义模式pattern:命名为lol,非数字一个或者多个
从开头位置开始匹配,搜索整个字符,匹配到一个对象就停止
匹配结果输出
讲解:我们看到开头“自然语言处理”符合匹配要求,直接输出
4.很简单,一起看看~
先定义模式pattern:命名为dota和lol,数字一个或者多个和非数字一个或者多个
dota从开头位置开始匹配,搜索整个字符,匹配到一个对象就停止
匹配结果输出
讲解:我们看到开头位置是“自然语言处理”不符合要求,跳过开头继续匹配,第二个“123”被搜索出来
5.有点坑,但是简单,最后一个了接着看~
坑点:这里是先dota后lol-->dota已经输出“123”,lol要接着它往后匹配(非数字一个或者多个)-->“机器学习”