Python中_sre.SRE_Match的match行能否显示完整匹配?Python3中match=''能否输出整串?
关于Python正则匹配对象的两个问题解答
1. _sre.SRE_Match输出中的'match'行是否显示完整匹配内容?
当然可以!当你直接打印一个_sre.SRE_Match(也就是Python 3里的re.Match)对象时,它的默认字符串表示里的match字段,就是这次正则匹配到的完整内容。举个实际的例子:
import re pattern = r'hello.*g' text = 'hello world ending with g' match_obj = re.search(pattern, text) print(match_obj)
运行后会输出类似:
<re.Match object; span=(0, 26), match='hello world ending with g'>
这里的match='hello world ending with g'就是完整的匹配结果,完全对应正则表达式匹配到的全部内容。
2. Python 3中,match=''能否打印出整个字符串(直到最后的'g')?
这个得纠正一下:match=''只是你手动定义了一个值为空字符串的变量,和正则匹配的结果没有任何关系,肯定没法打印出目标字符串。
如果想获取正则匹配到的完整内容(比如整个目标字符串),你需要调用匹配对象的group()方法(不带参数或者传0,默认就是获取第0组,也就是完整匹配):
# 接上面的例子 full_match = match_obj.group() print(full_match) # 会输出整个匹配到的字符串:hello world ending with g
只要你的正则表达式能匹配到从开头到最后'g'的整个字符串,group()就会返回完整的内容,直接打印它就能看到结果啦。
内容的提问来源于stack exchange,提问作者jouell
相关产品推荐
相关产品推荐

