本文實(shí)例講述了正則表達(dá)式之零寬斷言。分享給大家供大家參考,具體如下:
前言
之前我曾寫(xiě)了一篇關(guān)于正則表達(dá)式的文章(http://www.jb51.net/article/111359.htm) 在該文章中詳細(xì)介紹了正則,但是關(guān)于零寬斷言介紹卻是很少提及到?,F(xiàn)在將該內(nèi)容補(bǔ)充一下。在本文中,主要解決如下問(wèn)題:
① 什么是零寬斷言,為什么要使用零寬斷言
② 怎樣使用零寬斷言
概念
零寬斷言,大多地方這樣定義它,用于查找在某些內(nèi)容(但并不包括這些內(nèi)容)之前或之后的東西,也就是說(shuō)它們像 \b ^ $ \< > 這樣的錨定作用,用于指定一個(gè)位置,這個(gè)位置應(yīng)該滿足一定的條件(即斷言),因此它們也被稱(chēng)為零寬斷言。我的理解是在一個(gè)限定位置的字符串之前或之后進(jìn)行匹配查找。所以零寬斷言,執(zhí)行過(guò)程分兩種情況,如果是正向斷言,應(yīng)該是這樣的,第一步,判斷判斷斷言是否為真(即是否滿足一定條件)第二步,如果滿足條件,則進(jìn)行下一步查找匹配。如果是反向斷言,第一步還是按照正則表達(dá)式順序去匹配。第二步,遇到反向代言,判斷是否滿足反之代言。
正先行斷言
什么是正先行斷言,就是在字符串相應(yīng)位置之前進(jìn)行查找匹配,使用 (?=exp) 匹配exp前面的位置。