Python `(?P<;name>;…)和`\g<;报价>;`in-re模块
在阅读python正则表达式模块时,Python `(?P<;name>;…)和`\g<;报价>;`in-re模块,python,Python,在阅读python正则表达式模块时,(?p..)通常让我感到困惑 我从答案中知道这里除了随机的东西以外什么都没有,比如foobarzoo (?p…) 与普通括号类似,但组匹配的子字符串可以通过符号组名访问。组名必须是有效的Python标识符,并且每个组名只能在正则表达式中定义一次。符号组也是一个编号的组,就像该组没有命名一样。 命名组可以在三种上下文中引用。如果模式为(?P['”).*(?P=quote)(即匹配带单引号或双引号的字符串): 使用\g时,在re.sub中的repl参数中经常出错
(?p..)
通常让我感到困惑
我从答案中知道这里除了随机的东西以外什么都没有,比如foo
bar
zoo
(?p…)
与普通括号类似,但组匹配的子字符串可以通过符号组名访问。组名必须是有效的Python标识符,并且每个组名只能在正则表达式中定义一次。符号组也是一个编号的组,就像该组没有命名一样。
命名组可以在三种上下文中引用。如果模式为(?P['”).*(?P=quote)(即匹配带单引号或双引号的字符串): 使用
\g
时,在re.sub
中的repl参数中经常出错
因为我试着像蟒蛇一样,向别人解释根本的东西
为什么在\g
中使用g而不是p,或者为什么不在(?p…)
中使用g
所以会有一些一致性而不是混乱。我会说,这是因为
\g
始终是一个组。例如,在文档后面的“\g使用相应的组号”。我想,正如您提供的链接中所讨论的那样,p最初并不是针对组的。(?P
在上面的答案中提到的是关于正则表达式的一般扩展。原始的正则表达式命名组是?
,那么通过添加一个P@h4z3Nope来扩展什么呢。(?
是一些东西,只有在有了P之后,我们才知道它是这种类型的扩展。(?
本身并不意味着什么,它可以是(?:
-非捕获组。正如我所说的,并且您自己链接了它-P可能被选为一个通用的pythonic regex扩展,最初被认为不仅仅用于组。检查wikepedia@h4z3aaa中的regex,(?
本身并不意味着什么,只意味着非严格的regex会发生。(?我会说这是因为\g
始终是一个组。例如,在文档后面的“\g使用相应的组号”。我想P最初并不是为组生成的,正如您提供的链接中所讨论的那样。(?P
在上面的答案中提到的是关于正则表达式的一般扩展。原始的正则表达式命名组是?
,那么通过添加一个P@h4z3Nope来扩展什么呢。(?
是一些东西,只有在有了P之后,我们才知道它是这种类型的扩展。(?
本身并不意味着什么,它可以是(?:
-非捕获组。正如我所说的,并且您自己链接了它-P可能被选为一个通用的pythonic正则表达式扩展,最初被认为不仅仅用于组。检查wikepedia@h4z3aaa中的正则表达式,(?
本身并不意味着什么,只意味着非严格正则表达式将发生。(?)?