python 多次匹配_Python学习记录14

afbe22a97e7ed0ff91c904013c94e70c.png
print("#")
import re
#
s = "哈哈2"
res = re.search("[0-9]",s)
print(res)
#查询到匹配内容所在的区间 span()
print(res.span())
#查询到的匹配的内容  group()
print(res.group())

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

s = "哈哈3uS3k42"

#匹配两位,第一位是0-9,第二位是a-z, 
#但是re.search比较偷懒,只要匹配到了一个,就不再继续向后匹配了
#因此这里使用re.search()只匹配到了3u, 没有匹配后面的3k
res = re.search("[0-9][a-z]",s)
print(res)
<_sre.SRE_Match object; span=(2, 4), match='3u'>
s = "哈哈3uS3k4k2p3e"
#re.findall()找到一个后,会继续向后面会找, 匹配整个字符串
res = re.findall("[a-z][0-9][a-z]", s)
print(res)

['k4k', 'p3e']

msg = "a32rwfa3e5tv35d44"

#在[0-9]后面有个+, 表示前面的[0-9]整个模式要匹配1次或者多次
#也就是说可以出现1个数字,也可以出现多个数字(1个及其以上)
res = re.findall("[a-z][0-9]+[a-z]", msg)
print(res)

['a32r', 'a3e', 'v35d']

#验证qq号码 在5-11位数, 开头不能为0
qq = "12332232"
#正则表达式中,^表示从开头匹配,$表示匹配到结尾
res =  re.match("^[1-9][0-9]{4,10}$",qq)
print(res)

<_sre.SRE_Match object; span=(0, 8), match='12332232'>

#正则表达式 起名的方式
#起名的方式      (?P<名字>正则表达式)   (?P=名字)
msg = "<html><h1>abc</h1></html>"

#这里<>是指定的字符串, 起的名字是 (?P<name1>w+) (?P=name1) , 
#其中w+表示匹配任意的数字,字母,下划线,+表示匹配1次或者多次

#(.+) , 其中小括号()表示一个整体, .在正则表达式中表示除了回车的任意字符,+表示匹配一次或多次
res = re.match(r"<(?P<name1>w+)><(?P<name2>w+)>(.+)</(?P=name2)></(?P=name1)>", msg)
print(res)

<_sre.SRE_Match

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值