我无法理解这些正则表达式如何工作以及何时使用它们。我还没有在Python网站上找到这些正则表达式的具体例子。我知道SED AWK但没有使用这些类型的正则表达式有无法理解python正则表达式?=
(?=...)
(?<=...)
(?(id/name)yes-pattern|no-pattern)
我无法理解这些正则表达式如何工作以及何时使用它们。我还没有在Python网站上找到这些正则表达式的具体例子。我知道SED AWK但没有使用这些类型的正则表达式有无法理解python正则表达式?=
(?=...)
(?<=...)
(?(id/name)yes-pattern|no-pattern)
(?=...)
是positive lookahead assertion。它匹配?=
在当前位置匹配后的圆括号中的部分,但不会消耗任何匹配字符。例如。正则表达式a(?=b)
将匹配a
后跟b
,但不会返回b
作为匹配的一部分。
(?<=...)
是一样的,但看一下&#x200a; 后面,即它看起来倒退。同样,它不会消耗任何东西。
(?(id/name)yes-pattern|no-pattern)
是conditional。如果named groupid/name
匹配,则此时字符串必须匹配yes-pattern
,否则no-pattern
。
说实话,虽然这些都是相当先进的功能,我不记得曾经使用过一个条件。查找更常见,但通常受到正则表达式引擎的限制,例如,在许多情况下,只能用固定长度的字符串来完成后视。
感谢好友,我现在明白了 – user2027303
我连接了几次的网站是学习正则表达式的非常好的资源。 – Joey
@Joey:'只能用固定长度的字符串来完成'你的意思是后视?预见性相当于从当前位置开始一个新的匹配,并在预见之内使用正则表达式,这很容易实现。 – nhahtdh
这些都是在're'文档的[本节](http://docs.python.org/2/library/re.html#regular-expression-syntax)中解释的。 – mgilson