re.match()必须从字符串开头匹配!match方法尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。主要参数如下:
re.match(pattern, string)
# pattern 匹配的正则表达式
# string 要匹配的字符串
匹配字符串
举个例子
import re
a = re.match('test','testasdtest')
b = re.match('te','testasdtest')
c = re.match('t','testasdtest')
print(a)
print(b)
print(c)#返回一个匹配对象
print(a.group(0))
print(a.group()) #返回test,获取不到则报错
print(a.span()) #返回匹配结果的位置,左闭右开区间
print(re.match('test','atestasdtest')) #返回None
输出:
<re.Match object; span=(0, 4), match='test'>
<re.Match object; span=(0, 2), match='te'>
<re.Match object; span=(0, 1), match='t'>
test
test
(0, 4)
None
re.match()方法返回一个匹配的对象,而不是匹配的内容。如果需要返回内容则需要调用group()。通过调用span()可以获得匹配结果的位置。而如果从起始位置开始没有匹配成功,即便其他部分包含需要匹配的内容,re.match()也会返回None。
单字符匹配
以下字符,都匹配单个字符数据。且开头(从字符串0位置开始)没匹配到,即使字符串其他部分包含需要匹配的内容,.match也会返回none
匹配任意一个字符
使用几个点号就代表几个字符
import re
a = re.match('..','testasdtest')
print(a)
print(a.group()) #输出te
print(a.group(0)) #输出te
b = re.match('ab.','abtestasdtest')
c = re.match('test.','testasdtest')
print(b) #返回none,因为表达式是以固定的ab开头然后跟上通配符. 所以必须要先匹配上ab才会往后进行匹配
print(c)
print(b.group())
print(c.group())
输出:
<re.Match object; span=(0, 2), match='te'>
te
te
<re.Match object; span=(0, 3), match='abt'>
<re.Match object; span=(0, 5), match='testa'>
abt
testa