Python中国社区  »  问与答

[精华] 求助--下面正则表达式的结果,及原因

独霸一方宝宝 • 10 月前 • 425 次点击  
m = re.match('([cab])+',"cacb")
if m:
    print m.groups()

最后一次修改于 (2016-11-19 00:50)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1711
 
425 次点击  
分享到微博
文章 [ 2 ]  |  最新文章 10 月前
Py站长
Reply   •   1 楼
Py站长    10 月前

我理解是这样的,+ 可以理解为以下方式

import re

m = re.match('([cab])([cab])([cab])([cab])', "cacb")
if m:
    print m.groups()

由于 () 会不断覆盖前面的值,因此,在原式中得出的值一定是最后一个 b

再举例,

import re

m = re.match('([cab])+b', "cacb")
if m:
    print m.groups()

得出的结果是 c

Py站长
Reply   •   2 楼
Py站长    10 月前
  tmp cat tmp.py
import re
m = re.match('([cab])+',"cacb")
if m:
    print m.groups()
  tmp python tmp.py
('b',)

具体原因有点奇怪,没想通

分享
社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
WEB开发
linux   NGINX   IE   js   其他Web框架   MQ   peewee   web工具   zookeeper   Jquery   MongoDB   tornado   Redis   Git   NoSql   DATABASE   bottle   Bootstrap  
机器学习
机器学习算法  
Python88.com
社区推广   反馈   公告