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