问答详情
源自:3-3 python正则表达式语法(三)

这条字符串为什么匹配不了

ma = re.match(r'(hello)(world)?\2', 'helloworld')

提问者:风语者不语 2016-09-23 17:57

个回答

  • 慕斯5482594
    2016-10-12 16:11:06
    已采纳

    匹配helloworld或者helloworldworld ?  是这个意思吗?

    import re
    
    ma = re.match(r'(hello)(world)\2?', 'helloworld')
    print ma.group()
    ma = re.match(r'(hello)(world)\2?', 'helloworldworld')
    print ma.group()

    把?放在后面

  • 慕粉3751662
    2016-09-23 23:10:08

    因为你的正则表达式的前面一部分(hello)(world)?已经匹配了helloworld后面再加上\2肯定匹配不上的。

    ma = re.match(r'(hello)(world)?\2', 'helloworldworld')这样就可以匹配上了