re.match函数用于检查字符串的起始位置是否匹配某种模式,返回Match对象
格式:re.match(正则表达式,字符串【,标志位】)
import re
a='i love chian'
print(re.match('i',a)) # 字符串a是否以'n'开头,True则返回一个匹配对象
print(re.match('[A-Z]',a)) # 字符串a是否以'A'到'Z'的字母开头,False则返回‘None’
print(re.match('i love',a).span()) # 匹配表达式'i love'的所在位置(0,6),索引0开始6结束
print(re.match('[A-Z]',a,re.I)) # 标志位re.I表示不区分大小写
Match对象中,函数group()用于获取匹配表达式
import re
a='i love chian'
m=re.match('(.*) .* (.*)',a) # ()表示对匹配结果进行分组,'.*'表示任意字符
print(m) # m为匹配对象
print(m.group()) # 默认为0,即匹配表达式(匹配到的结果)
print(m.group(1)) # 组1的匹配对应值
print(m.group(1,2)) # 多个组的匹配对应值放在一个元组里
print(m.groups()) # 所有组的匹配对应值
re.search函数用于检查整个字符串,返回第一个匹配结果(Match对象),未匹配到返回’None’
格式:re.search(正则表达式,字符串【,标志位】)
import re
a='i love chian , and i live in chian'
print(re.search('[A-Z]hian',a,re.I))
m=re.match('(.*) love (.*) .*',a) # 匹配模式分为贪婪模式和非贪婪模式
n=re.match('(.*) love (.*?) .*',a) # (.*?),代表非贪婪模式,表示匹配符合条件的最少字符
print(m.groups())
print(n.groups())