1. 程式人生 > >Python正則表達式之 - ?: / ?= / ?!

Python正則表達式之 - ?: / ?= / ?!

順序存儲 一位 元字符 進制數 表達 字符串 python 緩沖區 marked

Python正則表達式之 - ?: / ?= / ?!

用圓括號將所有選擇項括起來,相鄰的選擇項之間用|分隔。但用圓括號會有一個副作用,使相關的匹配會被緩存,此時可用?:放在第一個選項前來消除這種副作用。

其中 ?: 是非捕獲元之一,還有兩個非捕獲元是 ?= 和 ?!,這兩個還有更多的含義,前者為正向預查,在任何開始匹配圓括號內的正則表達式模式的位置來匹配搜索字符串,後者為負向預查,在任何開始不匹配該正則表達式模式的位置來匹配搜索字符串。


反向引用

對一個正則表達式模式或部分模式兩邊添加圓括號將導致相關匹配存儲到一個臨時緩沖區中,所捕獲的每個子匹配都按照在正則表達式模式中從左到右出現的順序存儲。緩沖區編號從 1 開始,最多可存儲 99 個捕獲的子表達式。每個緩沖區都可以使用 \n 訪問,其中 n 為一個標識特定緩沖區的一位或兩位十進制數。

可以使用非捕獲元字符 ?:、?= 或 ?! 來重寫捕獲,忽略對相關匹配的保存。

Python正則表達式之 - ?: / ?= / ?!