【问题标题】:How Can I Get RegEx Groups From Python re Without Matching?如何在不匹配的情况下从 Python re 获取 RegEx 组?
【发布时间】:2016-05-27 15:48:52
【问题描述】:

如果我编译一个正则表达式,例如:

pat = re.compile("/resource/([a-z]*)/")

是否有可能在不执行 match, search,还是其他一些正则表达式调用?我想知道这种模式是如何“爆发”的。

例如,对象的 groups 属性告诉我有 1 个组。但没有更多信息。

【问题讨论】:

  • 你能告诉我们更多关于你想要完成的事情吗?
  • 看起来你想做类似的事情:docs.djangoproject.com/en/1.9/topics/http/urls/…。如果你不使用 Django,你在使用什么?您的框架中可能有类似的功能。否则,请查看执行此操作的框架之一的源代码或尝试查找库。
  • 假设这是一个通用 URL “/r/([a-z]*)/”,它将匹配“/r/foo/”、“/r/bar/”等。组件对 URL 一无所知,但它知道 fetch(ID1)fetch(ID2)。我想创建一个可以将通用 URL 映射到内部表示的函数。例如:shimfunc("/r/([a-z]*)/", [ ("foo", ID1), ("bar", ID2)]) ==> URL 模式是 "/r/", , "/" ==> 所以生成/返回 { "/r/foo/": ID1, "/r/bar/" : ID2 } 以后使用。

标签: python regex python-2.7


【解决方案1】:

使用regex101's 调试器功能。您可以逐步查看您的正则表达式是如何失败或成功的。

例子:

【讨论】:

  • 哇,我一直在使用这个工具,不知道它的存在。超级好用!
猜你喜欢
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
相关资源
最近更新 更多