Python正则表达式之 - ?: / ?= / ?!

Posted 一切都是最好的安排

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python正则表达式之 - ?: / ?= / ?!相关的知识,希望对你有一定的参考价值。

Python正则表达式之 - ?: / ?= / ?!

用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。

其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。


反向引用

对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用   访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。

可以使用非捕获元字符 ?:、?= 或 ?! 来重写捕获,忽略对相关匹配的保存。

以上是关于Python正则表达式之 - ?: / ?= / ?!的主要内容,如果未能解决你的问题,请参考以下文章

Python之正则表达式

Python系列之正则表达式

python基础之正则表达式

python之(re)正则表达式上

python 之正则表达式

正则表达式之Python编程