昨天是我第一天学正则表达式,遇到了一点问题没解决,今天回过头来想不断试代码,其实很简单,跟我一起学~

基础知识:

python search和match python search和match的区别_python search和match

图片讲解:

1.一般会写是以什么模式去进行match和search的搜索

2.match:从头开始匹配,匹配一个对象,如果开头是pattern的模式,找到了就返回,没有找到就None,不再继续进行下去

   search:从头开始匹配,匹配一个对象,如果开头没有符合的往后匹配,直到找到一个为止,匹配到最后没有找到就None

3.group得到匹配结果

注意:

1.match搜索的只是开头的位置,search搜索的整个字符串

2.两者都只匹配一个对象(我一开始傻乎乎的以为search找多个)

 

例子剖析:

python search和match python search和match的区别_正则表达式_02

为了方便讲解,我在这里打了序号1-5,接下来我说数字几就是对应代码,看清楚了哈~

1.我们先要导入re模块,不然后面操作是执行不了的

2.输入字符串,定义为input3

3.这里涉及到一个知识点,命名的问题,如图(为了配合讲解用的,看一眼就会了):

.

python search和match python search和match的区别_正则表达式_03

先定义模式pattern:命名为lol,非数字一个或者多个

从开头位置开始匹配,搜索整个字符,匹配到一个对象就停止

匹配结果输出

讲解:我们看到开头“自然语言处理”符合匹配要求,直接输出

 

4.很简单,一起看看~

先定义模式pattern:命名为dota和lol,数字一个或者多个和非数字一个或者多个

dota从开头位置开始匹配,搜索整个字符,匹配到一个对象就停止

匹配结果输出

讲解:我们看到开头位置是“自然语言处理”不符合要求,跳过开头继续匹配,第二个“123”被搜索出来

 5.有点坑,但是简单,最后一个了接着看~

坑点:这里是先dota后lol-->dota已经输出“123”,lol要接着它往后匹配(非数字一个或者多个)-->“机器学习”