正则表达式
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’>