Python 这个包含前瞻的正则表达式的字面意思是什么?
我试图理解积极和消极的前景,但我认为我遗漏了一些东西Python 这个包含前瞻的正则表达式的字面意思是什么?,python,regex,Python,Regex,我试图理解积极和消极的前景,但我认为我遗漏了一些东西 q(?=u) 我理解这个正则表达式的意思是:“匹配一个后跟u的q”,所以我得到一个字符串为“quit”的匹配,但得到的只是一个带有“q”的组 但是对于正则表达式q(?=u)i,我不会用字符串“quit”得到任何结果。为什么会发生这种情况?也许这个正则表达式没有意义,但我想知道它的意思是什么,以便理解lookahead。lookahead不使用它的文本qu不同于q(?=u)——后者只匹配q,但要求它后跟u(但不捕获或使用) 这就是为什么q(
q(?=u)
我理解这个正则表达式的意思是:“匹配一个后跟u的q”,所以我得到一个字符串为“quit”的匹配,但得到的只是一个带有“q”的组
但是对于正则表达式q(?=u)i,我不会用字符串“quit”得到任何结果。为什么会发生这种情况?也许这个正则表达式没有意义,但我想知道它的意思是什么,以便理解lookahead。lookahead不使用它的文本
qu
不同于q(?=u)
——后者只匹配q
,但要求它后跟u
(但不捕获或使用)
这就是为什么q(?=u)i
不能匹配的原因-q
后面需要同时跟u
和i
,这是不可能的。换句话说,它将发现并捕获qi
,但前提是q
后面紧跟u
,如果后面紧跟i
,这显然是不正确的
如果要匹配
qui
,则其正则表达式为qui
先行不使用其文本qu
不同于q(?=u)
——后者只匹配q
,但要求它后跟u
(但不捕获或使用)
这就是为什么q(?=u)i
不能匹配的原因-q
后面需要同时跟u
和i
,这是不可能的。换句话说,它将发现并捕获qi
,但前提是q
后面紧跟u
,如果后面紧跟i
,这显然是不正确的
如果要匹配
qui
,如果要匹配后面没有其他内容的内容,则必须使用正则表达式qui。在解释字符类时,本教程解释了为什么不能使用求反字符类来匹配后跟u的q。负前瞻提供了解决方案:q(?!u)。负先行结构是一对括号,左括号后跟问号和感叹号。在前瞻中,我们有一个微不足道的正则表达式u
积极前瞻的工作原理是一样的。q(?=u)匹配后跟u的q,而不使u成为匹配的一部分。正向先行结构是一对圆括号,左括号后面跟一个问号和一个等号
如果要匹配某个内容,而不是后面跟着其他内容,则必须进行负前瞻。在解释字符类时,本教程解释了为什么不能使用求反字符类来匹配后跟u的q。负前瞻提供了解决方案:q(?!u)。负先行结构是一对括号,左括号后跟问号和感叹号。在前瞻中,我们有一个微不足道的正则表达式u
积极前瞻的工作原理是一样的。q(?=u)匹配后跟u的q,而不使u成为匹配的一部分。正向先行结构是一对圆括号,左括号后面跟一个问号和一个等号