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

re.match(r'<([\w]+>)[\w]+</\1','<book>python</book>')问题

http://img4.mukewang.com/5a4071ea0001bcc715080690.jpg

re.match(r'<([\w]+>)[\w]+</\1','<book>python</book>')这个的匹配结果为什么不是<book>python</?

下面一个<book>python</book1>,为什么加1后就匹配不出来了?



提问者:希希同学 2017-12-25 11:43

个回答

  • qq_爱吃羊的鲸鱼_0
    2017-12-25 22:22:57
    已采纳

    \1就是代表了前面“([\w]+>)”这些内容,你将\1替换掉就成了ma=re.match(r'<([\w]+>)[\w]+</([\w]+>)','<book>python</book>')  其中括号已经没有意义,去掉后就变成ma=re.match(r'<[\w]+>[\w]+</[\w]+>','<book>python</book>')  这样看就应该没问题了吧。

    后面加1匹配不出来的原因也是应为</book>这个字符串匹配不到的缘故。