首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中引用re.match()中的捕获组

在python中引用re.match()中的捕获组
EN

Stack Overflow用户
提问于 2016-08-11 15:29:17
回答 1查看 191关注 0票数 0

嗨,这是我想要匹配的字符串。

mystr = "mykey/20161010/20161010"

到目前为止我的regex是这样的

re.match("mykey/([2-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9])/[.]*", mystr)

如您所见,我使用的是一个Capture group。我想通过引用我已经创建的捕获组来替换[.]*。我该怎么做?

PS :我正在使用Python 2.7

更新1到目前为止,我已经尝试过了(我已经简化了一些示例),但似乎不起作用.

代码语言:javascript
运行
复制
>>> mystr = "mykey/20/20"

>>> print re.match("mykey\/([2-9][0-9])\/[.]*", mystr)
<_sre.SRE_Match object at 0x7faf96ddf558>

>>> print re.match("mykey\/([2-9][0-9])\/.*", mystr)
<_sre.SRE_Match object at 0x7faf96ddf558>

>>> print re.match("mykey\/([2-9][0-9])\/\1", mystr)
None

当我试图引用None时,我得到了Capture group。我是不是遗漏了什么?

更新2:终于开始工作了.希望这有助于寻找答案的人。添加额外的backslash(ie \)完成了这个任务

代码语言:javascript
运行
复制
>>> import re
>>> mystr = "mykey/20160610/20160610"
>>> re.match("mykey/([2-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9])/\\1", mystr)
<_sre.SRE_Match object at 0x7fe352145558>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 15:35:17

代码语言:javascript
运行
复制
mykey\/([2-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9])\/\1

使用\1 -捕获第一个捕获组(在本例中为[2-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9] )生成的精确匹配。

较短的版本将是

代码语言:javascript
运行
复制
mykey\/([2-9]\d{3}[0-1]\d[0-3]\d)\/\1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38900564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档