Python 正则表达式 — search()方法

findall()方法在找到第一个匹配之后,还会继续找下去,findall吗,就是找到所有的匹配的意思。如果你只是想找到第一个匹配的信息后,就不在继续找下去了,那么就使用search()方法,这个方法找到第一个匹配之后,就停止寻找。
所有如果你只是想找到第一个匹配信息,使用search()方法可以提高搜索效率。

search()函数的使用

# -?- coding: utf-8 -?-
import re

secret_code = 'dsdxx1xxdsdfxx2xxdfsdxx3xxdlrelxx4xxeuwuxx5xxnjkjh'

b = re.search('xx(.*?)xxdsdfxx(.*?)xx', secret_code )
print(b)

运行

<_sre.SRE_Match object; span=(3, 17), match='xx1xxdsdfxx2xx'>

输出的这是什么东西?我们试试下面的代码:

# -?- coding: utf-8 -?-
import re

secret_code = 'dsdxx1xxdsdfxx2xxdfsdxx3xxdlrelxx4xxeuwuxx5xxnjkjh'

a = re.search('xx(.*?)xxdsdfxx(.*?)xx', secret_code ).group(0)
b = re.search('xx(.*?)xxdsdfxx(.*?)xx', secret_code ).group(1)
c = re.search('xx(.*?)xxdsdfxx(.*?)xx', secret_code ).group(2)

print(a)
print(b)
print(c)

运行

xx1xxdsdfxx2xx
1
2

参考网站:
http://www.jikexueyuan.com/course/777_2.html?ss=2