正則表達式以前瞻後顧(look around)

文中所說的先後是有方向的,未免產生歧義,在此聲明下 如A => B 咱們說B在A的前面,A在B的後面python

  • A(?=B) 前瞻(Look ahead positive): 匹配的是A,限制條件是A前面是B。

想要匹配abc而且abc的前面是123的表達式,應該這樣:編輯器

  • A(?!B) 負前瞻(Look ahead negative): 顧名思義,該正則匹配A,限制條件是A前面不是B

想要匹配abc而且abc的前面不是123的表達式,應該這樣: 3d

  • (?<=B)A 後顧(Look behind positive ): 匹配表達式A,限制條件A的後面是B

想要匹配abc而且abc的後面是123的表達式, 尷尬的是js不支持後顧,只支持前瞻,因此用js匹配會這樣:code

因此我換了sublime編輯器,由於sublime是用python寫的,因此會獲得這樣的結果:cdn

  • (?<!B)A 負後顧(Look behind negative ): 匹配表達式A,限制條件是A的後面不是B

想要匹配abc而且abc的後面不是123的表達式,應該這樣:blog

固然,在js中也是不支持負後顧的,不過彷佛有提案讓js支持後顧,相信過幾年js就能夠支持後顧了。it

相關文章
相關標籤/搜索