有人可以解释为什么跟随返回“ cc”吗?
>>> re.match('(..)+', 'aabbcc').group(1)
'cc'
有人告诉我,因为它将每个匹配项都放入了group(1)中,所以最后一个匹配项是’cc’。真的吗?
那么下面如何解释?
>>> re.match('(..)+(...)', 'aabbcc').group(1)
'aa'
由定义的组(..)
是组1。+
量化器重复它。每当引擎能够重复该组(匹配两个字符)时,组1就会被覆盖。
aa
到组1bb
到组1cc
到组1。当您检查组1时,引擎将返回cc
。所有其他捕获都将丢失。
(唯一的例外是.NET引擎,它也返回cc
,但也可以让你的中间感谢CaptureCollection对象捕捉检查。这将包括aa
,bb
和cc
)。
使用(..)+(...)
,为什么第1组包含aa
?回溯!
为了理解这一点,我们再次需要遵循正则表达式引擎的路径。
aa
到组1(..)
组并捕获bb
到组1(..)
组并捕获cc
到组1(...)
。失败:没有字符可消耗。+
一次或多次,并且我们匹配的手段..
三次,所以我们可以放弃一个,或者甚至是两个。在此阶段,引擎放弃了量化(..)+
组的最后一个匹配,即cc
。我们回到了第1组的时间bb
。(...)
再次尝试匹配。仅剩两个字符:cc
,因此再次失败。(..)+``bb``aa
(...)
再次尝试匹配。成功:组2为bbc
,组1为aa
参考
以下是全部代码: 输出是: 编译器背后发生了什么导致了这些结果?
问题内容: 这是有效的,并返回JavaScript中的字符串 为什么?这是怎么回事 问题答案: 如果我们将其拆分,则混乱等于: 在JavaScript中,确实是这样。将某物转换为数字,在这种情况下,它将降为或(请参见下面的规范详细信息)。 因此,我们可以简化它(优先于): 因为意思是:从中获取第一个元素,所以确实: 返回内部数组()。由于引用,说错了,但是让我们调用内部数组以避免错误的表示法。 在
我从JS开始,实际上喜欢异步方面(来自Python),但我不确定为什么有些函数返回Promise。具体来说,下面使用的代码让我想知道返回了什么: 除了流之外,我们在之后得到的HTTP响应是一个文本块,客户端稍后会对其进行解释,以提取标题、正文和其他有趣的元素,作为HTTP内容分析的一部分。 关键是这个文本块是一块的,所以第一个已经有了整个响应——为什么JSON主体的解析是异步操作,不同于第二个?
这不是重复的...在我看来。我不是在问它的有用性。如果可以的话,我要求澄清定义。不要投反对票,请解释一下。如果我认为这篇文章对其他读者来说很愚蠢,我会删除它。 其中显示是这样的 如果后面是什么?:应为“普通括号的非捕获版本”。匹配括号内的任何正则表达式,但在执行匹配或稍后在模式中引用后,无法检索组匹配的子字符串。” 为什么它仍然返回字符串“animal=”? (Python 3.6.3)f是:
这些叫什么?在powershell中编写脚本时,我可以使用它们来设置或转换变量的数据类型,但这是什么术语呢?这些有官方文件吗? 示例:
我正在regex101上测试这个。通用域名格式 正则表达式: 测试字符串: 字符串匹配,但“匹配信息”框显示只有两个捕获组: 我期待着所有这些捕捉: β-bar baz-bz fd zz 为什么周期之间的每个标识符都没有被识别为自己捕获的组?