Python中国社区  »  问与答

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

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

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

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

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

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站长    12 月前
  tmp cat tmp.py
import re
m = re.match('([cab])+',"cacb")
if m:
    print m.groups()
  tmp python tmp.py
('b',)

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

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