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