Python 捕获组和监视区
我想知道捕获组(或非捕获组)如何影响Regex中的lookarounds。 以下是两个示例:Python 捕获组和监视区,python,regex,Python,Regex,我想知道捕获组(或非捕获组)如何影响Regex中的lookarounds。 以下是两个示例: test (?:(?!<start).)+ test (?!<start).+ 测试(?:(?)?! 环顾四周。在这方面,将它们单独放在一个捕获组中没有多大意义,它们捕获的内容不会比一个空字符串更有趣(很像\b vs.(\b)。边缘案例涉及回引用一个可选组,但这不是很有趣 正的looharounds-(?=…)和(?),但它们可以在其中使用捕获组。例如,^(?。*(.).*.\1)。*$
test (?:(?!<start).)+
test (?!<start).+
测试(?:(?)?!
环顾四周。在这方面,将它们单独放在一个捕获组中没有多大意义,它们捕获的内容不会比一个空字符串更有趣(很像\b vs.(\b)
。边缘案例涉及回引用一个可选组,但这不是很有趣
正的looharounds-(?=…)
和(?),但它们可以在其中使用捕获组。例如,^(?。*(.).*.\1)。*$
将匹配不包含重复字母的行。同样,在这种情况下,\1
的行为如何,在组外并不有趣
现在,以您的示例为例。这两种模式匹配不同的文本:
(?)(?!你用什么语言使用正则表达式?这真的很重要吗?我认为正则表达式在所有langauges.Python中的作用都是一样的。每种语言都有自己的文档和引擎。我认为这个例子不是lookbehind断言,而是lookbeahead。还有,在非捕获或捕获组中,到底是什么定义了循环?这是我想了解的关键部分站起来。@Michael是对的:(?)?!