正则表达式在python中需要导入re模块。
我们先定义一个字符串 str1 = 'abcd13288889999'
然后使用search方法,search方法中传两个参数。
一、\d:代表一个数字
第一个参数:r为防转义,\d代表一个数字。
第二个参数:str1
re.search(r'\d',str1)
执行结果为:
如图,结果:<re.Match object; span=(4, 5), match='1'>
search方法传入\d,会从字符串中找数字,此处传入1个\d,则找到下标为4-5的数字,span里的4,5就是这个意思。(相当于列表中的切片)
如果传入两个\d,执行结果则为:
如图,结果: <re.Match object; span=(4, 6), match='13'>
取4-6的位置,match结果取值13
为了方便,我们传入\d{11},这个方法就可以取出11位手机号了,我们来试一试:
如图,结果:<re.Match object; span=(4, 15), match='13288889999'>
这就是python正则中search的\d用法。
二、.:代表任意一个字符
下面让我们试试search中.的效果:
我们传入.,.代表任意字符
如图,结果: <re.Match object; span=(0, 1), match='a'>
取str1中下标0,1的字符串,取值为'a'
我们现在试试别的字符串传入的效果,比如传入\n999:
如图,结果: <re.Match object; span=(1, 2), match='9'>
我们看到,取值结果为9,没有取\n,所以search方法时不取\n的
三、[]:找字符串中是否有对应值
[]中写入789,字符串传入asda9asd:
我们看到,他会找字符串里有没有789,找到了9,就返回了9的值。如果没有,则不返回。
如果字符串内把789都包含了,则找到最先找到的,返回:
返回结果为8。
四、\D:非数字
传入一个\D,字符串内有数字和非数字,则找第一个非数字的字符,如图:
多的例子就不举了,看图