re.match()到底会返回什么?

1.re.match()到底会返回什么?
根据菜鸟教程的解释,如下图:
在这里插入图片描述

从图中的解释,我们可以看出“菜鸟教程” 并没有解释 “在起始位置匹配成功,会返回什么”,那么到底会返回什么呢?
现在我们通过python编程实验来看看到底会返回什么:

import re
print(re.match('www', 'www.runoob.com'))  # 在起始位置匹配
print(re.match('com', 'www.runoob.com'))  # 不在起始位置匹配

返回结果如下:

<re.Match object; span=(0, 3), match='www'>
None

在这里插入图片描述

可以看出:当re.match()在起始位置上匹配上的话,会返回"<re.Match object; span=(0, 3), match=‘www’>",这里返回的是一个 MatchObject

2.那么什么是:MatchObject呢?
Match object是re方法match()和seatch()返回的对象。
MatchObject 实例也有几个方法和属性;最重要的那些如下所示:

  1. group() 返回被 RE 匹配的字符串
  2. start() 返回匹配开始的位置
  3. end() 返回匹配结束的位置
  4. span()返回一个元组包含匹配 (开始,结束) 的位置

3.该如何处理MatchObject呢

处理这样的返回内容:<re.Match object; span=(0, 3), match=‘www’>
我们可以使用span()方法与group()方法进行处理,这也是我们在编程时常用见到的。
具体操作过程如下:
span方法操作:

import re
print(re.match('www', 'www.runoob.com').span())  # 在起始位置匹配,这里将返回一个元组包含(开始,结束) 的位置
print(re.match('com', 'www.runoob.com'))  # 不在起始位置匹配

返回结果如下:

(0, 3)
None

group()方法操作如下:

import re
print(re.match('www', 'www.runoob.com').group())  # 在起始位置匹配,这里将返回我们匹配成功的内容
print(re.match('com', 'www.runoob.com'))  # 不在起始位置匹配

返回结果:

www
None
  • 11
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: re.match返回结果是一个Match对象,需要使用Match对象的方法或属性来获取匹配结果,例如使用group()方法来获取匹配的字符串。直接输出Match对象得到一个内存地址的表示,不是我们想要的结果。 ### 回答2: re.match函数是用于尝试从字符串的起始位置匹配一个模式。它返回的是一个匹配对象(match object)或者None,而不是直接返回匹配到的字符串返回一个匹配对象的原因是,匹配对象包含了匹配到的详细信息,如匹配到的字符串、匹配的起始位置和结束位置等。这些详细信息对于进一步处理匹配结果非常有用。 如果直接输出返回的匹配对象,得到一个类似于<re.Match object; span=(0, 5), match='hello'>的字符串表示。这个字符串表示了匹配到的字符串、匹配起始位置和结束位置的信息。 如果只需要输出匹配到的字符串,则可以使用匹配对象的group()方法,它返回匹配到的字符串部分。例如,如果有一个字符串"hello world",使用re.match("hello", string)可以匹配到"hello",然后可以使用match_obj.group()输出"hello"这个字符串。 所以,为了获取到匹配到的具体字符串,需要使用返回的匹配对象进行进一步处理,而不能直接输出。 ### 回答3: re.match返回结果不能直接输出是因为它返回的是一个匹配对象(Match object),而不是直接返回匹配到的字符串。匹配对象包含了匹配到的字符串以及其他与匹配相关的信息。 如果要获取匹配到的字符串,可以通过调用匹配对象的group()方法来实现,例如match_obj.group()就可以获取到匹配到的字符串。可以通过传入参数来获取不同位置的匹配到的字符串,如match_obj.group(0)获取整个匹配到的字符串match_obj.group(1)获取第一个分组的字符串(如果有分组的话)。 此外,匹配对象还提供了一些其他的方法和属性,让我们可以获取更多与匹配相关的信息。例如,可以通过调用match_obj.span()方法来获取匹配到的字符串的起始和结束位置,通过调用match_obj.start()和match_obj.end()方法分别可以获取匹配到的字符串的起始和结束位置。 所以,要想获取re.match返回结果中匹配到的字符串,我们需要使用匹配对象的相应方法来提取出来,不能直接输出整个匹配对象。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值