正則斷言用來匹配某個表達式前面或者後面必需要有什麼,或者必須沒有什麼,可是這些字符是不會被匹配出來(這就是零寬度),例如,字符串’abc 咱們要求abc字符前面必需要有一個’,可是匹配結果中是abc,不能包含這個’號的,就叫正向零寬度斷言,基於此有如下斷言方式spa
一、 正向零寬度先行斷言字符串
描述:緊挨着須要匹配的字符後面必須有表達式exp匹配的字符im
表達式:(?=exp)img
舉例:co
說明:因爲hello後面要求必需要有一個world,故第一行的hello能夠匹配成功,而第二行的hello因爲後面不是world則不會被匹配成功字符
二、 正向零寬度回顧後斷言ab
描述:要求要緊挨着匹配字符的前面必需要有符合表達式exp的字符
表達式:(?<=exp)
舉例:
說明:這個要求world單詞的前面必需要有一個hello的單詞,不然則算是匹配失敗,在這裏面匹配到了第一行的world,而第二行的world則會匹配失敗
三、 負向零寬度先行斷言
描述:緊挨着須要匹配結果的後面不容許出現符合exp表達式的內容
表達式:(?!exp)
舉例:
說明:緊挨着hello後面不容許出現world單詞,因此第一行未能匹配
四、 負向零寬度回顧後斷言
描述:緊挨着在須要匹配的結果前不容許出現符合 exp表達式的內容
表達式:(?<!exp)
舉例:
說明:因爲第一行的world以前有hello,故第一行未能匹配獲得,第二行得以匹配