Python社区  »  问与答

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

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

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

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

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

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站长    4 月前
  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   DATABASE   MQ   Bootstrap   NGINX   js   其他Web框架   peewee   web工具   Git   zookeeper   MongoDB   bottle   tornado   Redis   IE   NoSql  
机器学习
机器学习算法  
Python88.com
公告   社区推广   反馈