正則表達式斷言

    正則斷言用來匹配某個表達式前面或者後面必需要有什麼,或者必須沒有什麼,可是這些字符是不會被匹配出來(這就是零寬度),例如,字符串’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,故第一行未能匹配獲得,第二行得以匹配

相關文章
相關標籤/搜索