天天看點

正規表達式---零寬度正預測先行斷言 (?=X)

零寬度正預測先行斷言——這句話我們了解的時候要分為三個部分:零寬度、正、預測先行判斷。

  • 零寬度:指比對指針在完成斷言判斷後,傳回原位置。斷言不會影響指針位置。
  • 正:指字元串符合X要求。
  • 預測先行判斷:這個就比較好了解了,就是判斷指針前方是否符合要求。

零寬度正預測先行斷言,在正規表達式中我們也可以了解為需要先行滿足的條件。即在滿足先行的條件後,才有必要執行之後的比對判斷 。

例如,要擷取html代碼中的非<h*>(<h1>、<h2>、<h3>等)标簽,我們用如下正則:

regex="<(?=[^/])(?!h\\d).*?>"

這裡有兩個先行判斷:

  • 不以字元'/'開頭;
  • 不以字母h加上一個數字開始

繼續閱讀