python正则(1)match\search\findall

正则表达式

ps:本节代码全是shjd的某个sjl写的,所以意会

re.match()

import re
a = r"jilao"
if re.match(a,“jilao111jilao”):
print(“有基佬”)
else :
print(“没有基佬”)

运行结果是

有基佬

re.match()至少有两个参数,第一个是你想寻找的表达式,第二个是你要从哪里找
那么你肯定会说,上面那段代码改成re.match(a,“jilao111jilao”)==1肯定也是一样的嘛。对不起,错了。

import re
a = r"jilao"
if re.match(a,“jilao111jilao”)==1:
print(“有基佬”)
else :
print(“没有基佬”)

运行结果是

没有基佬

那么这是为什么呢?我们打印一下看看:

print(re.match(a,“jilao111jilao”))

得到的结果是

<_sre.SRE_Match object; span=(0, 5), match=‘jilao’>

所以你一下子明白了,这东西返回的是一个object,那怎么才能弄成个比较正常的呢?强转?不用re?其实设计这个的人已经设计了这个方法
有什么方法可以调用呢?点击试试

re.search()

这个东西的调用方法和match基本上是一样的。

if re.search(a,“jilao111jilao”):
print(“有基佬!!”)

那么match和search的区别是什么呢?
区别就在于match是从第一个开始找,但是search是整个字符串的找
例如:对于字符串"我爱学习",如果用match去找“爱”,因为第一个是“我”,所以就找不到。而用search去找“爱”就可以找到

re.findall()

这个函数的作用就是找到所有符合要求的字符串然后输出

import re
a = r"jilao"
print(re.findall(a,“jilao111jilao222jilao333”))
print(type(re.findall(a,“jilao111jilao222jilao333”)))

输出的结果就是

[‘jilao’, ‘jilao’, ‘jilao’]
<class ‘list’>

猜你喜欢

转载自blog.csdn.net/weixin_43914889/article/details/87977331