- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
regexp)": what does "P" stand for?-6ren"> regexp)": what does "P" stand for?-在 Python 中,(?P…) syntax 允许通过其名称引用匹配的字符串: >>> import re >>> match = re.search('(?P.*) (?P.*)', 'John -6ren">
在 Python 中,(?P<group_name>…)
syntax 允许通过其名称引用匹配的字符串:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
“P”代表什么?我在 official documentation 中找不到任何提示。
我很想知道如何帮助我的学生记住这种语法。知道“P”代表(或可能代表)什么会很有用。
最佳答案
既然我们都在猜测,我不妨给出我的:我一直认为它代表 Python。这听起来可能很愚蠢——什么,P 代表 Python?! ——但在我的辩护中,我隐约记得this thread [强调我的]:
Subject: Claiming (?P...) regex syntax extensions
From: Guido van Rossum (gui...@CNRI.Reston.Va.US)
Date: Dec 10, 1997 3:36:19 pm
I have an unusual request for the Perl developers (those that develop the Perl language). I hope this (perl5-porters) is the right list. I am cc'ing the Python string-sig because it is the origin of most of the work I'm discussing here.
You are probably aware of Python. I am Python's creator; I am planning to release a next "major" version, Python 1.5, by the end of this year. I hope that Python and Perl can co-exist in years to come; cross-pollination can be good for both languages. (I believe Larry had a good look at Python when he added objects to Perl 5; O'Reilly publishes books about both languages.)
As you may know, Python 1.5 adds a new regular expression module that more closely matches Perl's syntax. We've tried to be as close to the Perl syntax as possible within Python's syntax. However, the regex syntax has some Python-specific extensions, which all begin with (?P . Currently there are two of them:
(?P<foo>...)
Similar to regular grouping parentheses, but the text
matched by the group is accessible after the match has been performed, via the symbolic group name "foo".
(?P=foo)
Matches the same string as that matched by the group named "foo". Equivalent to \1, \2, etc. except that the group is referred
to by name, not number.I hope that this Python-specific extension won't conflict with any future Perl extensions to the Perl regex syntax. If you have plans to use (?P, please let us know as soon as possible so we can resolve the conflict. Otherwise, it would be nice if the (?P syntax could be permanently reserved for Python-specific syntax extensions. (Is there some kind of registry of extensions?)
Larry Wall 回复:
[...] There's no registry as of now--yours is the first request from outside perl5-porters, so it's a pretty low-bandwidth activity. (Sorry it was even lower last week--I was off in New York at Internet World.)
Anyway, as far as I'm concerned, you may certainly have 'P' with my blessing. (Obviously Perl doesn't need the 'P' at this point. :-) [...]
所以我不知道最初选择P的动机是什么--模式?占位符?企鹅? ——但你可以理解为什么我总是将它与 Python 联系起来。考虑到(1)我不喜欢正则表达式并尽可能避免使用它们,以及(2)这个线程发生在 15 年前,这有点奇怪。
关于python - 命名正则表达式组 "(?P<group_name>regexp)": what does "P" stand for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10059673/
我忘了,但是 EAGL 代表什么具体的东西吗?或者它只是核心动画 OpenGL 命名约定的一部分(CAEAGLLayer 等)? 最佳答案 “AGL”是苹果 OS X 的 OpenGL 扩展的名称。我
我有 2 个表: 包含 gold_country、silver_country、bronze_country 列的 olympic_medalists 带有国家列的标志 我想相应地列出奥运奖牌表。我有
我有一些带有@prim: #colorCode 的.css 文件,@prim 代表什么?因为它只在一个地方使用,所以我无法弄清楚@prim 的用途。并且 Eclipse 正在报告错误“意外的 toke
我正在查看 Kestrel 的源代码并发现了一些有趣的东西。从它的 dev 分支,你可以看到有一个名为 HttpClientSlim 的独立类文件。在不属于任何项目的 /test/shared 文件夹
我正在试图理解编译C/C++项目时如何使用MT和MD选项。然而,由于无法将这些假定的缩略语扩展为有意义的短语,我忘记了从一段到下一段哪个是哪个。奇怪的是,我读过的文章都不是从定义M、T和D开始的,它们
我知道向它们发出警告的方法,但我想让我的合法警告与我的待办事项分开。我还没有看到 xcode 4 像每个人似乎都认为的那样突出显示待办事项。并且 xcode 的 todo 支持仅适用于函数之外的 to
我有一个相当普遍的问题:我最近在 C/C++ 代码中看到许多#defines 被注释为“/*< ... */”,例如: #define ARRSIZE(x) (sizeof(x)/s
我正在查看 pthreadtypes.h 文件中的 pthread_mutex_t 结构。 “__lock”代表什么?它就像分配给互斥锁的锁号吗? typedef union { struct _
我在 JavaScript 中有这段代码 var pts = "0 0, 0 1909, 2559 1909, 2559 0"; pts.replace(/0/g, '2'); 问题是它替换了所有零!
这可能是文档中的一个错误,或者只是我弄错了,但无论如何我认为看到同一个 fb: 命名空间的多个不同定义是令人困惑的: xmlns:fb="http://www.facebook.com/2008/fb
我有一个问题,在进入待机模式之前我需要清理一些东西。问题是,当客户按下电源按钮(如果配置为进入休眠模式)时,我也需要这样做。 PowerSetRequest(_PowerRequest, PowerR
我试图使用 Wiremock 独立服务器实现对 POST REST 调用的模拟。我面临这样的挑战,假设帖子正文包含一个“名称”字段及其值,该 POST 调用的响应中应返回相同的值。我的 json 文件
现在,在我开始问愚蠢的问题之前,我想说我在 JavaScript 和 C# 方面都有丰富的经验。 所以最近我开始了创建自己的编程语言的旅程。我找到了一个使用 javaScript 的好教程( http
我很想知道以下标记中的字母 g 代表什么: %1$suntil holiday 我从 https://developer.android.com/distribute/tools/loca
我在 prolog 中找不到明确的 (:) 代表什么. 在交互模式下,您可以看到以下证据: ?- display(a:b). :(a,b) true. ?- display([a,b,c]). .(a
我刚刚开始学习 Solidity,这是一项个人挑战。我不是开发人员,所以我还有很长的路要走。 我正在关注 Ethereum.org 教程,这是我有疑问的地方: “[msg.sender]”代表什么?
我习惯了 SQL Server 中的查询编辑器,在那里可以自由编写和执行 T-SQL。如何让以下代码在 PostgreSQL 中执行而无需从中创建函数? DECLARE l integer =
我已经使用 pandas 一段时间了,我了解 loc 和 iloc 的作用。但是直到今天我都不知道这两个东西是否代表什么?它们是某物的简称还是缩写?或者它们只是随机的? 我将 iloc 解释为“基于索
我正在尝试编写一个 Ruby 正则表达式,它可以捕获引用的短语,而不是前面有“:”的短语。例如: Obama: "Yes, we can!" 应该被忽略。 我写了一些测试: http://rubula
我试图弄清楚我做错了什么,但这是我唯一得到的错误。你能给我一些我可以寻找的提示吗? 错误发生在 Deutsch 时被选中,当 Englisch 时它工作正常被选中。 --Size 51,18 --Ze
我是一名优秀的程序员,十分优秀!