Python 捕获组和监视区

Python 捕获组和监视区,python,regex,Python,Regex,我想知道捕获组(或非捕获组)如何影响Regex中的lookarounds。 以下是两个示例: test (?:(?!<start).)+ test (?!<start).+ 测试(?:(?)?! 环顾四周。在这方面,将它们单独放在一个捕获组中没有多大意义,它们捕获的内容不会比一个空字符串更有趣(很像\b vs.(\b)。边缘案例涉及回引用一个可选组,但这不是很有趣 正的looharounds-(?=…)和(?),但它们可以在其中使用捕获组。例如,^(?。*(.).*.\1)。*$

我想知道捕获组(或非捕获组)如何影响Regex中的lookarounds。 以下是两个示例:

test (?:(?!<start).)+

test (?!<start).+
测试(?:(?)?!
  • 环顾四周。在这方面,将它们单独放在一个捕获组中没有多大意义,它们捕获的内容不会比一个空字符串更有趣(很像
    \b vs.(\b)
    。边缘案例涉及回引用一个可选组,但这不是很有趣
  • 正的looharounds-
    (?=…)
    (?),但它们可以在其中使用捕获组。例如,
    ^(?。*(.).*.\1)。*$
    将匹配不包含重复字母的行。同样,在这种情况下,
    \1
    的行为如何,在组外并不有趣
  • 现在,以您的示例为例。这两种模式匹配不同的文本:


  • (?)(?!你用什么语言使用正则表达式?这真的很重要吗?我认为正则表达式在所有langauges.Python中的作用都是一样的。每种语言都有自己的文档和引擎。我认为这个例子不是lookbehind断言,而是lookbeahead。还有,在非捕获或捕获组中,到底是什么定义了循环?这是我想了解的关键部分站起来。@Michael是对的:
    (?)?!