python 正则表达式 match方法 二

re.match :尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回none

#re.match 方法 尝试从字符串的其实位置匹配一个模式,如果不是其实位置匹配成功的话,match() 就返回none
#1.最常规的匹配
import re
#content = ‘Hello 123 4567 World_This is a Regex Demo’
#print(len(content)) #输出字符串的长度
#result = re.match(’^Hello\s\d{3}\s\d{4}\s\w{10}.*Demo$’,content)
#print(result)
#print(result.group()) #返回匹配结果
#print(result.span()) #输出匹配结果范围


#2.泛匹配
#content = ‘Hello 123 4567 World_This is a Regex Demo’
#result = re.match(’^Hello.*Demo$’,content)
#print(result)
#print(result.group()) #返回匹配结果
#print(result.span()) #输出匹配结果的范围


#3.匹配目标 获取1234567
#content = ‘Hello 1234567 World_This is a Regex Demo’
#result = re.match(’^Hello\s(\d)\sWorld.*Demo$’,content)
#print(result)
#print(result.group(1)) #获取第一个括号的内容
#print(result.span()) #输出匹配结果的范围


#贪婪匹配

#content = ‘Hello 1234567 World_This is a Regex Demo’
#result = re.match(’^He.*(\d).Demo$’,content)
#print(result)
#print(result.group(1)) #结果是7 '.
’ 会尽可能匹配更多的字符
#print(result.span())


#非贪婪匹配
#content = ‘Hello 1234567 World_This is a Regex Demo’
#result = re.match(’^He.*?(\d+).*Demo$’,content) #.*后面,括号前面加个‘?’指定匹配为非贪婪匹配。匹配尽可能少的字符
#print(result)
#print(result.group(1)) #结果是1234567
#print(result.span())


#匹配模式
#content = ‘’‘Hello 1234567 World_This
#is a Regex Demo’’’
##注意:.不能匹配this后面的换行符,添加一个匹配模式之后就可以匹配换行符 了re.S
#result =re.match(’^He.*?(\d+).*Demo$’,content,re.S)
#print(result)
#print(result.group(1)) #结果是1234567
#print(result.span())


#转义

#content = 'price is KaTeX parse error: Expected 'EOF', got '#' at position 7: 5.00' #̲#‘’属于特殊字符所以必须转义
#result = re.match(‘price is $5.00’,content)
#print(result)

content = 'price is KaTeX parse error: Expected 'EOF', got '#' at position 7: 5.00' #̲属于特殊字符所以必须转义 加上
result = re.match(‘price is $5.00’,content)
print(result) #<re.Match object; span=(0, 14), match=‘price is $5.00’>
#match 从第一个字符开始匹配,所以必须保证第一个字符在正则匹配里面,否则不能完成正常匹配
#总结:尽量使用泛匹配,使用括号得到匹配目标,尽量使用非贪婪模式、有换行符的就用re.S
# 为了匹配方便,能用search就不用match

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值