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

来源:3-3 python正则表达式语法(三)

风语者不语

2016-09-23 17:57

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

写回答 关注

2回答

  • 慕斯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()

    把?放在后面

    风语者不语

    非常感谢!

    2016-12-26 11:10:49

    共 1 条回复 >

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

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

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

    风语者不语

    我的目的是要匹配helloworld或者helloworldworld,第二个括号内的内容允许有0个或一个.

    2016-09-26 18:00:59

    共 1 条回复 >

python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题